Zig Build System Reworked
2 days ago
- #incremental-compilation
- #type-resolution
- #build-system
- Build system reworked: Separation of configurer and maker processes to speed up 'zig build' and enable better caching, with benchmark improvements showing up to 90% reduction in wall time.
- Incremental compilation support added for the LLVM backend, speeding up error feedback and successful builds with options like '-fincremental --watch'.
- Type resolution redesign: Lazy field analysis improves performance, better dependency loop error messages, and significant enhancements to incremental compilation.
- Experimental io_uring and Grand Central Dispatch (GCD) implementations added to std.Io.Evented, allowing for swappable I/O backends with green threads support.
- Package management enhancements: Fetched packages stored locally in 'zig-pkg/' for easier editing and offline builds, and the '--fork' flag allows overriding dependencies with local forks.
- Windows API improvements: Bypassing kernel32.dll for lower-level ntdll.dll calls to reduce overhead, heap allocations, and failure modes in functions like entropy generation and file I/O.
- Zig libc project: Replacing vendored C source files with Zig wrapper functions to reduce code, improve compilation speed, and enable better optimizations across libc boundaries.