Odin : Un langage inspiré de C qui adopte les meilleures pratiques modernes

2025-05-13
Odin : Un langage inspiré de C qui adopte les meilleures pratiques modernes

L'auteur, s'appuyant sur son expérience de développement d'un moteur de jeu en C, met en lumière l'intégration d'un certain nombre de meilleures pratiques C dans Odin. Cela inclut les allocateurs personnalisés (avec un support intégré dans les bibliothèques principales d'Odin), les allocateurs temporaires pour la gestion de mémoire par image, les allocateurs de suivi pour la détection des fuites, l'initialisation à zéro, les initialiseurs désignés et la programmation optimisée pour le cache grâce à la prise en charge de SoA. Odin réussit cela tout en conservant la simplicité de C, en ajoutant des fonctionnalités modernes telles que les génériques et la surcharge. L'auteur souligne que, bien que les fonctionnalités d'Odin soient très bénéfiques pour ceux qui ont une expérience similaire en C, il est également accessible à ceux qui ne sont pas familiers avec ces concepts, suggérant son livre comme ressource introductive.

Lire plus
Développement

Alluocateurs d'arène et tableaux dynamiques en Odin : pièges cachés

2025-04-13
Alluocateurs d'arène et tableaux dynamiques en Odin : pièges cachés

L'utilisation d'alloueurs d'arène avec des tableaux dynamiques en Odin présente des pièges subtils. Les arènes gèrent efficacement les allocations ayant la même durée de vie, désallouant tout à la fois. Cependant, le mécanisme de croissance des tableaux dynamiques laisse des blocs de mémoire anciens non libérés lors de l'utilisation d'un alloueur d'arène, ce qui entraîne un gaspillage de mémoire. L'article explique pourquoi : les alloueurs d'arène ne prennent pas en charge les désallocations individuelles, et la croissance du tableau dynamique crée un « cimetière » de blocs anciens. Les solutions consistent à utiliser l'alloueur par défaut, à préallouer la taille maximale ou à utiliser une arène virtuelle croissante. Bien que l'arène virtuelle croissante empêche le déplacement des blocs de mémoire, elle n'est pas à l'abri des gaspillages potentiels. L'article conclut que si l'utilisation de la mémoire est très dynamique, il est conseillé d'éviter les alloueurs d'arène.

Lire plus