Zig – SPIR-V Backend Progress
9 hours ago
- #backend
- #performance
- #compiler
- SPIR-V backend updates: Introduced @SpirvType, execution mode via calling convention, CPU-driven capabilities, multi-threaded codegen, and .spv file linking.
- @bitCast redefinition: New semantics based on logical bit layouts instead of memory reinterpretation, improving consistency and enabling new type conversions.
- ELF linker improvements: Support for incremental compilation with external libraries and faster rebuilds, though DWARF debug info generation is pending.
- Build system rework: Separation into configurer and maker processes improves performance, caching, and supports CLI flags like --fork for dependency overrides.
- Incremental compilation with LLVM backend: Reduces compile times for errors and successful builds, available in master branch.
- Type resolution redesign: Lazy field analysis, better dependency loop error messages, and incremental compilation bug fixes.
- std.Io implementations: Experimental io_uring and Grand Central Dispatch support for evented I/O, allowing interchangeable I/O backends.
- Package management enhancements: Local zig-pkg directory for dependencies and --fork flag for easy project overrides.
- Windows API optimization: Preferring ntdll.dll over kernel32.dll for performance and reliability improvements.
- Zig libc project: Replacing vendored C functions with Zig implementations to reduce code, improve compilation speed, and enable better integration.