文章摘要
Zig编程语言在2025年7月23日发布了新的Aarch64后端,由Andrew Kelley和Jacob Young开发。该后端目前通过了79%的行为测试,代码量较x86后端显著减少,显示出更高的效率和简洁性。
文章总结
Zig 编程语言开发日志(2025年)
本文总结了2025年Zig编程语言开发日志中的主要更新和进展,涵盖了新功能、性能优化和未来计划。
2025年7月23日:Aarch64 新后端
作者:Andrew Kelley & Jacob Young
Jacob 提交了一个新的Aarch64后端,该后端通过了1547/1960(79%)的行为测试,相比LLVM后端,代码量更少,且生成机器代码的速度更快。该后端在编译器内部使用了机器代码指令编码,减少了迭代次数,简化了状态跟踪机制。虽然功能尚未完全实现,但初步测试显示其性能显著优于x86后端。
2025年6月30日:Zig 2026路线图
作者:Loris Cro
计划在7月2日的Zig SHOWTIME节目中讨论2026年的Zig路线图,更多信息可参考相关链接。
2025年6月14日:并行自托管代码生成
作者:Matthew Lugg
x86_64后端在Linux和macOS的Debug模式下已默认启用,并进一步优化了并行编译性能。通过将代码生成任务并行化,编译速度提升了5%到50%。未来将继续优化链接器和机器代码生成质量,并逐步启用增量编译。
2025年6月8日:自托管x86后端默认启用
作者:Andrew Kelley
在x86_64目标下,Zig默认使用自托管x86后端,而非LLVM。该后端通过了1987个行为测试,比LLVM后端更稳定,且编译速度显著提升。未来将继续优化并行代码生成和增量编译。
2025年6月6日:Zig构建系统介绍视频
作者:Loris Cro
发布了一个关于Zig构建系统的入门视频,展示了如何创建和导入Zig模块。未来将发布更多相关视频。
2025年5月20日:FreeBSD和NetBSD跨平台编译支持
作者:Alex Rønne Petersen
Zig现在支持从任何平台编译FreeBSD 14.0.0+和NetBSD 10.1+的目标文件,未来计划增加对OpenBSD、Dragonfly BSD等系统的支持。
2025年4月9日:网站更新至Zine 0.10.0
作者:Loris Cro
Zig官方网站现在使用独立的Zine构建工具,未来将继续优化网站功能。
2025年3月3日:发布标签状态更新
Zig 0.14.0版本即将发布,虽然部分功能未能如期完成,但已包含大量改进。
2025年2月24日:改进的UBSan错误信息
作者:David Rubin
Zig现在提供了更清晰的UBSan错误信息,帮助开发者更容易调试未定义行为。
2025年2月7日:无Libc的Zig性能超越Glibc
作者:Andrew Kelley
通过优化调试分配器,Zig在无Libc的情况下性能超越了使用Glibc的版本,未来将继续优化多线程应用的分配器性能。
2025年1月24日:Zig的LLDB分支
作者:Alex Rønne Petersen
Jacob正在为Zig开发更好的调试支持,包括一个增强版的LLDB分支,适用于Zig的自托管后端。
这些更新展示了Zig在性能、功能和跨平台支持方面的持续进步,未来将继续优化编译速度和开发者体验。
评论总结
关于避免LLVM后端的动机:
- 评论1(MuffinFlavored)提出了对避免LLVM后端的动机的疑问,但没有给出具体论据。
- 引用:"What's the motivation to avoid LLVM backends?"(“避免LLVM后端的动机是什么?”)
- 评论1(MuffinFlavored)提出了对避免LLVM后端的动机的疑问,但没有给出具体论据。
关于MIR的定义和平台依赖性:
- 评论2(ummonk)对MIR的定义表示困惑,认为它可能更接近Aarch64二进制文件,而非平台无关的中间表示。
- 引用:"Is MIR short for 'machine intermediate representation' instead of 'medium intermediate representation'?"(“MIR是‘机器中间表示’而不是‘中等中间表示’的缩写吗?”)
- 引用:"I generally expect IRs to be relatively platform-independent but it sounds like the 'MIR' here is close to Aarch64 binary?"(“我通常认为中间表示是相对平台无关的,但这里的‘MIR’听起来更接近Aarch64二进制文件?”)
- 评论2(ummonk)对MIR的定义表示困惑,认为它可能更接近Aarch64二进制文件,而非平台无关的中间表示。
对Zig的多功能性的认可:
- 评论4(conorbergin)对Zig的多功能性表示高度认可,特别是在GPU编程和编译到SPIR-V方面的应用。
- 引用:"Zig is becoming a real do-everything tool for me."(“Zig对我来说正成为一个真正的全能工具。”)
- 引用:"I was learning gpu programming recently and found you could compile it to SPIR-V!"(“我最近在学习GPU编程,发现你可以把它编译成SPIR-V!”)
- 评论4(conorbergin)对Zig的多功能性表示高度认可,特别是在GPU编程和编译到SPIR-V方面的应用。
对代码变更的简单认可:
- 评论3(EricRiese)对代码变更表示简单认可,但没有提供具体评论。
- 引用:"LGTM"(“看起来不错。”)
- 评论3(EricRiese)对代码变更表示简单认可,但没有提供具体评论。