Zig 语言的开发日志更新了。这次的主角不是语言特性,而是构建系统的底层重写——一套全新的 ELF 链接器,支持 30 毫秒增量编译,标志着 Zig 工具链走向成熟的关键一步。
新链接器:从「仅限 Zig」到「全链路」
核心贡献者 Matthew Lugg(mlugg)在过去几周持续打磨 Zig 0.16.0 引入的新 ELF 链接器。最初版本仅支持纯 Zig 代码且无法链接外部库(甚至 libc),因此默认处于禁用状态。而最新 PR 已经实现了里程碑式突破:新链接器可以完整构建自举的 Zig 编译器,且支持 LLVM 和 LLD 库。
更令人兴奋的是增量编译性能。在 Andrew 的俄罗斯方块克隆项目上,代码修改后的重建时间仅约 30 毫秒——即使在链接外部库和 C 源码的情况下,也没有额外性能开销。编译器自身的增量重建同样受益。
0.17.0 即将到来
开发日志透露,Zig 0.17.0 将在未来数周内发布。这对于刚升级到 0.16.0 的用户来说是个惊喜——毕竟 0.16.0 的开发周期超过一年。社区对此反应热烈,用户 onlyrealcuzzo 评论道:「我完全没预料到 0.17 这么快。」
社区:Zig 是「车库里的瑞士军刀」
HN 评论区充满对 Zig 的热情。用户 portly 分享了使用体验:「Zig 是我在车库里捣鼓想法的首选语言——每次遇到瓶颈,都发现创造者已经考虑到了。它从不居高临下地告诉你该怎么写代码。」
用户 brabel 则盛赞 0.16.0 的改进:「影响了很多东西,但变化都非常好。新的 IO 机制让单线程、多线程和事件循环实现都很高效。」还有用户提出了「双语言编程」的理念——用高层语言完成大部分工作,只在必要时下降到 Zig——这正是 Zig 作为「工具语言」的定位。
构建系统的深层意义
Zig 的独特之处在于:它不只是一个编译器,而是一个完整的构建系统。新链接器的增量编译能力,让 Zig 在「C 替代品」的竞争中获得了关键优势——开发者不需要在性能和迭代速度之间做取舍。当其他系统语言还在为链接时间头疼时,Zig 已经在追求交互式开发的体验了。
原文链接:ziglang.org/devlog/2026/#2026-05-26 · HN 讨论:315 points, 204 comments