Hasty Briefsbeta

Bilingual

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.