Odin: Un lenguaje inspirado en C que adopta las mejores prácticas modernas

2025-05-13
Odin: Un lenguaje inspirado en C que adopta las mejores prácticas modernas

El autor, basándose en la experiencia de construir un motor de juego en C, destaca la incorporación de varias mejores prácticas de C en Odin. Esto incluye los asignadores personalizados (con soporte integrado en las bibliotecas principales de Odin), los asignadores temporales para la gestión de memoria basada en fotogramas, los asignadores de seguimiento para la detección de fugas, la inicialización cero, los inicializadores designados y la programación amigable con la caché mediante el soporte SoA. Odin logra esto manteniendo la simplicidad de C, añadiendo características modernas como genéricos y sobrecarga. El autor enfatiza que, aunque las características de Odin son muy beneficiosas para aquellos con una experiencia similar en C, también es accesible para aquellos no familiarizados con estos conceptos, sugiriendo su libro como un recurso introductorio.

Leer más
Desarrollo

Alojadores de Arena y Arreglos Dinámicos en Odin: Trampas Ocultas

2025-04-13
Alojadores de Arena y Arreglos Dinámicos en Odin: Trampas Ocultas

El uso de alojadores de arena con arreglos dinámicos en Odin presenta trampas ocultas. Las arenas gestionan eficientemente las asignaciones con la misma vida útil, desasignando todo a la vez. Sin embargo, el mecanismo de crecimiento de los arreglos dinámicos deja bloques de memoria antiguos sin liberar al usar un alojador de arena, lo que lleva a un desperdicio de memoria. El artículo explica por qué: los alojadores de arena no admiten desasignaciones individuales, y el crecimiento del arreglo dinámico crea un 'cementerio' de bloques antiguos. Las soluciones incluyen usar el alojador predeterminado, preasignar el tamaño máximo o usar una arena virtual en crecimiento. Si bien la arena virtual en crecimiento evita el movimiento de bloques de memoria, no es inmune a posibles desperdicios. El artículo concluye que si el uso de la memoria es altamente dinámico, es aconsejable evitar los alojadores de arena.

Leer más