Zig in H1 2026: Build System Split, @bitCast Redesign, SPIR-V Revival, 10x Incremental Speedup
This devlog digest covers major Zig compiler changes from H1 2026, authored by Andrew Kelley, Matthew Lugg, and Ali Cheraghi. Key highlights include: (1) Package management moved from the compiler process into the build system's maker process, cutting `zig build --help` from 150ms to 14ms (-90%) and shrinking the Zig binary by 4%. (2) @bitCast redefined with endian-agnostic logical bit layout semantics, now also allowed on enums. (3) SPIR-V backend revived: new `@SpirvType` builtin, execution mode as calling convention, multi-threaded codegen, and .spv object file linking. (4) LLVM backend now zero/sign-extends non-ABI-width integers to ABI-sized types before storing in memory, yielding ~5% perf improvement for the Zig compiler itself; incremental compilation with LLVM backend is also now supported. (5) The new ELF linker (`-fnew-linker`) can self-host the Zig compiler (with LLVM+LLD) and supports fast incremental relinking (~244ms). (6) io_uring and Grand Central Dispatch implementations landed for `std.Io.Evented`, enabling I/O backend swap without touching application code. (7) Dependencies now cached in a local `zig-pkg` directory; new `--fork` flag allows temporarily overriding any package in the dependency tree. Essential reading for compiler engineers, systems programmers, and anyone following Zig's evolution.