Zig 0.17 推荐,构建系统大重构与迈向 1.0 的中间站
系统编程语言 Zig 在十月一日放出了 0.17.0,五个月周期、两百零六位贡献者、九百多次提交,节奏稳定,管理有序,社区治理日渐成熟。这个版本的重头戏不在语法在构建体系,同时它也是官方仓库从某代码托管平台迁往自由平台后的第一个大版本。我把官方发布说明与社区讨论对了一遍,升级前该知道的事都在这,新用户旧用户各取所需。
这版改了什么
构建系统是绝对主角。制作者与配置器两类进程分离,构建脚本的逻辑独立运行;缓存系统整个重构,元数据省约四分之一体积、命中提速一到一成,均为官方自称,另配了新的缓存查看子命令;包管理整体移出编译器;还引入了配置缓存投毒这一新概念与对应防护参数。链接器方面,新的可执行链接格式链接器在这个版本落地,多年铺垫的增量编译终于覆盖主流桌面平台全部用户,官方预期如此。捆绑工具链升到新版的编译器框架与最新内核头文件。
语言与标准库照例有破坏性变更。位重解释这个操作改为与端序无关的逻辑位表示,数组与向量场景可能静默变行为,迁移清单把它列为头号高危点;直接导入 C 头文件的写法被移除,改走外部转换包;一批内置常量与枚举转换函数被弃用或替换,标准库的分配器安全包装、格式化打印、区域配置解析都有接口调整。官方发布说明照例附了完整迁移清单,升级前照着逐条过。
路线与迁移
离 1.0 还有多远,官方的口径很谨慎,语言完全稳定是打 1.0 标签的前置条件,时间表一个字没给。路线图上的大项还包括两大主流架构后端的补全、摆脱对旧链接器的依赖、模糊测试增强、构建与包管理收尾、标准库审计。本周期约二十五个提案被接受、一百二十五个被拒,治理透明度在同类语言里算高的。下一个版本计划升级工具链并移除本版弃用的常量。顺带一提,官方主仓库已迁往自由代码托管平台,旧平台仓库转只读,星数冻结在四万三千多,社区对这次迁移的理由讨论了很久,此处不展开。
社区怎么看
发布帖两百零三分。用了一年的用户称它是为人设计的最好语言,同时坦承还不稳定生态也小;有核心项目与终端模拟器两大招牌用例背书,基金会资金充足的说法也有用户背书。抱怨集中在三处。升级后性能回退报告不止一份,位运算变慢、项目整体慢一成多的情况都有人报,核心成员解释了其中一个已知问题,起因是循环向量化被禁用,修复要等工具链升级;频繁破坏性变更让一部分人转向其他新兴语言;还有项目作者的封号争议,起因是在缺陷报告中提及用大模型辅助验证,核心成员的官方口径是他们只是要求缺陷报告由人写给人类,但社区对此事的火气到现在还没消。
注意事项
免费开源,宽松许可证,捐赠走基金会,新用户入群渠道也齐全。生产项目升级前先读迁移清单里的位重解释一节,配合测试覆盖确认无静默行为变化。依赖直接导入 C 头文件的老代码工作量更大,预算好时间。下载认准官方域名,文档站的版本切换别看错。新项目想入场的,这个版本的构建体验已是历年最佳,但要有下个版本还得改代码的心理准备。
总结
构建体系与链接器的双重铺垫版本,离 1.0 又近一格但距离未量化。在用的人按迁移清单稳步升,观望的人再等一个版本看性能回退处理,喜欢这门语言的人不妨这轮就加入贡献者名单,两百多人一起推,下一版就会更好。
来源
- 官方发布说明 https://ziglang.org/download/0.17.0/release-notes.html
- 官方下载页 https://ziglang.org/download/
- 仓库迁移公告 https://ziglang.org/news/migrating-from-github-to-codeberg/
- HN 讨论 https://news.ycombinator.com/item?id=49938521