Zig 0.17.0 est désormais disponible, avec 5 mois de travail de 206 contributeurs sur 925 commits. Cette version inclut un système de construction remanié avec le nouveau protocole de serveur de construction, et un lieur ELF amélioré permettant la compilation incrémentielle sur x86_64-linux.
Les changements de langage incluent des modifications @bitCast, une grammaire formellement spécifiée et fuzzée, la traduction C déplacée vers un paquet externe, de nouveaux @backingInt et @fromBackingInt, le type @spirv, la suppression de la syntaxe de multiplication de tableaux, et plus encore. Les mises à jour de la bibliothèque standard introduisent un allocateur sécurisé, un allocateur de repli de pile remanié et un formatage amélioré.
Le système de construction sépare désormais le processus du fabricant du processus du configurateur, avec un système de cache remanié et un empoisonnement du cache de configuration. La gestion des paquets ajoute la possibilité de remplacer les chemins des paquets, et le compilateur introduit la compilation incrémentielle, le backend SPIR-V, et des backends aarch64, loongarch et WebAssembly améliorés.
Les mises à jour de la chaîne d'outils incluent LLVM 22, musl 1.2.5, glibc 2.44, les en-têtes Linux 7.2, les en-têtes macOS 27.0, et plus encore. Les correctifs notables corrigent un bogue LLVM affectant les binaires aarch64-windows et ajoutent des traces de pile en cas de crash pour ARM 32 bits. La version introduit également un indicateur --complexity pour zig fmt et déplace la compilation des ressources Windows vers un paquet externe.
Source: Hacker News · Résumé par HeadlinesBriefing