Zig 0.10.0 正式发布,自托管编译器首次亮相!


Zig 0.10.0 已正式发布。Zig 是一种通用的编程语言和工具链,用于维护健壮、最优和可重用的软件。

Zig 0.10.0 是重要更新版本,其开发周期长达 10 个月,共有 272 名贡献者提交了 4737 个 commit。当然最大的亮点莫过于自托管编译器的首次亮相。

自托管编译器

此次更新的重大亮点就是自托管编译器的首次亮相。

目前 Zig 已默认启用自托管编译器,同时也为尚未准备好升级的用户保留了 Bootstrap 编译器,只需添加-fstage1flag 即可使用。

官方介绍称,自托管编译器的实现在性能和内存使用方面优于旧版本。以下是编译器自身构建的两项数据(在 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz 上测试):

  • Wall Clock Time: 43 seconds to 40 seconds (7% faster)
  • Peak RSS: 9.6 GiB to 2.8 GiB (3.5x less memory used)

根据 Zig 维护者的介绍,Zig 自托管编译器有大概 20 万行代码,包含 LLVM、WASM、C、x86_64、arm 和 aarch64 后端。编译器代码库采用 Zig 而不是 C++ 编写,使用的内存显着减少,优化了性能。

尽管与 Bootstrap 编译器不同,新的编译器实现的速度略快,而且由于与链接器紧密结合,它能够进行增量编译。不过更大的编译速度优势将来自于不使用 LLVM 的代码生成后端。

据称这个版本的绝大部分开发工作都花在了这个新的编译器实现上。因此,语言方面的变化非常少。但这个新的代码库为主要的增强功能打下了基础,主要涉及到加快编辑/测试/调试周期。现在,自托管编译器不会再耗费如此多的精力,Zig 开发团队将会积极实现路线图上的目标。

WebAssembly

在这个版本的开发周期中,团队将大量时间都花在了可见和不可见的改进上,通过重构来提升可读性、可维护性以及后端及其生成代码的性能。在 Zig 0.10.0 中,团队称离让 WebAssembly 后端成为默认调试模式更近了一步。

延伸阅读

  • 实现自托管后,Zig 的下一步是什么?
  • Zig 重要里程碑:已初步实现自举

相關推薦

2023-08-05

看发布公告。 延伸阅读 Zig 0.10.0 正式发布,自托管编译器首次亮相 实现自托管后,Zig 的下一步是什么? Zig 重要里程碑:已初步实现自举

2022-10-26

随着 11 月 1 日 Zig v0.10.0 版本的发布,其新的自托管编译器(self-hosted compiler)也将同步推出。“尽管自托管编译器现已实现,但仍有更多的工作要做。与此同时,更多令人兴奋的功能的大门已经打开,比如 Zig 的官方包管理器。

2022-11-04

2022云栖大会上,OceanBase社区版4.0 Beta(公测)正式亮相,与企业版拥有同等性能,更兼容、更易用,2分钟内即可完成快速部署。这意味着,业内首个兼容MySQL的单机分布式一体化数据库正式上线。 OceanBase 4.0降低了数据库使用

2021-12-10

1 点。虽然有些晚,但这是香山第一次在国际 RISC-V 社区正式亮相,再晚也值得。 他还透露称,“香山”有了新的归属——“香山”出嫁了。不过关于“出嫁”的具体信息需要暂时保密,未来将适时公开。不知道这是否暗

2023-09-10

2022年9月8日,Javascript运行时Bun正式发布1.0版本,标志着这个由前Facebook工程师创建的项目正式进入稳定生产可用阶段。 Bun的愿景是通过深度整合,让Javascript开发“快如闪电”。这个新生力量是否能撼动Javascript界老牌霸主Node的

2022-09-08

本次更新内容 修复t-io作为Client时,断网状态连接一个域名时,不会触发内置的自动重连 如梦技术提交的减少内存占用的代码优化 最新 POM 坐标 <dependency>     <groupId>org.t-io</groupId>     <artifact

2024-02-05

次更新着眼于解决关键的第三方项目问题、修复bug、提升编译器性能以及实施增量编译的战略。同时,Andrew还分享了关于为Zig软件基金会(ZSF)筹集资金和实现1.0版本目标的宝贵信息。 即将到来的版本:专注于质量而非时间 Zi

2024-08-23

GNU 那样庞大和专业。 Linus 称这封邮件并不是 Linux 的发布公告,而是第一封公开表示“嘿,我四月份就开始研究这个东西了,现在几乎准备好了”的电子邮件。 Linus 还分享了关于内核发版的故事: 二十多年前,Linux Kernel

2023-09-13

(包括浏览器)中使用 Zig 它将允许拥有一个通用的 C 编译器,将 C 文件(在底层使用 LLVM)编译到任何架构,并且可以从任何支持运行 Wasm 的架构运行 它将允许创建 http 服务器(或 TCP/UDP 服务器)以在 Edge 甚至浏览器中运行

2023-09-08

sm 应用开发需要自己的编程语言生态系统和相关工具,如编译器、框架、库、工具和运行时。Dev 类别包括编程语言、运行时、应用程序框架edge/bare metal、AI  推理、嵌入式功能和工具。 Wasm 领域中共有 4 类编程语言:

2024-06-22

一步减少线程的阻塞,提升并发度。 卓越性能:仓颉编译器及运行时从全栈对编译进行优化,包括编译器前端基于CHIR(Cangjie HighLevel IR)高层编译优化(比如语义感知的循环优化、语义感知的后端协同优化等),基于后端的

2022-03-29

们还初步提交了开源的 PowerVR Vulkan 驱动的;近日他们还正式开源了 PowerVR Series 1 显卡驱动程序的源代码,该系列包括的型号有 Midas Arcade、PCX1 和 PCX2,它们均是 90 年代末的产品。 PowerVR GPU 于 1995 年首次亮相,并在 1996/1997 年

2024-10-29

Zig 语言通用代码生成器:逻辑,冒烟测试版发布二 Zig 语言是一种新的系统编程语言,其生态位类同与 C,是前一段时间大热的 rust 语言的竞品。它某种意义上的确非常像 rust,尤其是在开发过程中无穷无尽抛错的过程,简直和

2024-10-25

Zig语言通用代码生成器:逻辑,冒烟测试版发布 Zig语言是一种新的系统编程语言,其生态位类同与C,是前一段时间大热的rust语言的竞品。它某种意义上的确非常像rust,尤其是在开发过程中无穷无尽抛错的过程,简直和rust真是