Zig: Pointer Stability for ArrayLists
Une fonctionnalité de verrouillage de stabilité des pointeurs a été ajoutée à std.ArrayList; il faut appeler lockPointers() avant de conserver des pointeurs ou slices vers les éléments et unlockPointers() ensuite, ce qui permet d'obtenir une assertion explicite quand la réallocation ou des opérations ordonnées déplacent les éléments. La gestion des paquets a été déplacée du compilateur vers le processus maker du système de build, déplaçant les sous-commandes liées aux paquets hors du binaire du compilateur, facilitant les correctifs sans reconstruire le compilateur et permettant des vérifications et optimisations de sécurité via ReleaseSafe et code crypto natif. Le backend SPIR‑V a reçu de nombreuses améliorations, notamment le nouveau builtin @SpirvType, des conventions d'appel pour les stages (vertex, fragment, kernel, task, mesh), l'émission et l'édition de fichiers .spv, du codegen multithread et la restauration de passes d'ISel, ce qui augmente la couverture des tests et la praticabilité pour shaders. Le backend LLVM a été modifié pour abaisser les entiers non‑ABI en tailles ABI lors du stockage, et le builtin @bitCast a été redéfini en termes de représentation logique des bits (comportement indépendant de l'endianness pour les agrégats), changements accompagnés d'une passe Legalize et d'améliorations de performances mesurables. Plusieurs travaux d'infrastructure ont accéléré l'expérience développeur : le système de build sépare désormais configurer et maker pour des reconstructions et un --watch beaucoup plus rapides, le nouvel éditeur ELF prend en charge l'édition incrémentale et la compilation instantanée, std.Io gagne des implémentations io_uring et GCD basées sur fibres, la gestion des paquets ajoute un dépôt zig-pkg local et un flag --fork pour utiliser des forks locaux, zig libc remplace des sources C par des wrappers Zig, et la bibliothèque privilégie les API natives Windows (ntdll) plutôt que kernel32 pour réduire allocations et erreurs.