Zig v0.17.0
First reported by Ziglang ·
Incremental compilation is now available for x86_64-linux, reducing build times.
Zig version 0.17.0 has been released after five months of development, with contributions from 206 individuals across 925 commits. This update significantly revamps the build system, introducing the Build Server Protocol and enhancing the ELF linker to support incremental compilation for x86_64-linux users. The release also introduces new language features like @bitCast changes, @backingInt and @fromBackingInt, and array multiplication syntax. It formalizes grammar and C translation, moves to an external package, and adds new functions like @divCeil. Stability and standard library improvements include reworked allocators, new ArrayList, and enhancements to formatted printing. Target support has been expanded to include new architectures like loongarch, game consoles (Switch, PSX, WiiU), and early xtensa-linux support. Notably, support for some PowerPC targets has been dropped due to incompatible floating-point standards. The release also updates toolchain components like LLVM and glibc.
The extensive rework of Zig's build system, including the introduction of the Build Server Protocol, signals a move towards more standardized and efficient development workflows. This change is likely to improve tooling integration and potentially enable more sophisticated build analysis in the future. Furthermore, the significant expansion of target support, particularly for niche architectures and game consoles, indicates Zig's growing ambition to be a versatile language for a wide array of embedded and specialized systems, rather than solely a general-purpose language.
The enhancements to the ELF linker, leading to expected incremental compilation for x86_64-linux, directly address developer pain points around build times. This feature, coupled with the formal specification and fuzzing of the grammar, underscores Zig's commitment to robustness and developer productivity. The addition of features like @backingInt and @fromBackingInt, alongside array multiplication, provides developers with more direct control and expressive power for low-level operations, which is a hallmark of the Zig language.
AI-written summary. May contain errors.