Zig 重要里程碑:已初步实现自举

出品|开源中国

Zig 最近合并了名为 make self-hosted the default compiler 的 PR—— 意思就是默认编译器已实现自托管 (self-hosted)。在编程语言中,所谓自托管就是该编程语言实现的编译器可编译自己。因此,合并这个 PR 意味着 Zig 已初步实现自举

从 Zig 0.10.x 开始,开发者即可默认使用新的自托管编译器。当然,如果使用新编译器遇到问题,添加 -fstage1 flag 即可获取旧的编译器。开发团队表示,从现在到 0.10.0,他们将尽最大努力解决现实世界的错误,并尽可能多地让新编译器支持第三方项目。

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

从 PR 的描述来看,目前许多功能仍处于待实现阶段。当然,初步实现自托管编译器只是 Zig 的里程碑之一,要发布 1.0 仍有许多重要工作完成:

完成自托管编译器。

稳定语言特性,不再有语言特性变更

完成语言规范初稿

实现官方包管理器

提供稳定标准库

在没有任何重大更改的情况下进行一个完整的发布周期

最后标记 1.0。

由于合并此 PR 后会发生变化,为了确保项目正确地构建和运行,请查看这份指南:https://github.com/ziglang/zig/wiki/Self-Hosted-Compiler-Upgrade-Guide

Zig 是一种通用的编程语言和工具链,用于维护健壮、最优和可重用的软件。Zig 具有以下值得关注的特性:

手动管理内存

与 C 语言竞争而非依赖它,Zig 标准库不依赖于 libc

轻量而简单,专注于调试应用而不是调试编程语言的知识

新的错误处理方法,与编写良好的 C 语言错误处理类似,但减少了很多冗余

调试模式下优化了快速编译时间,并在不确定行为发生时使用堆栈跟踪崩溃

ReleaseFast 模式和 ReleaseSafe 模式

泛型数据结构和函数

通过协程实现并发

导入 .h 头文件并直接使用 C 语言的类型、变量和函数

导出要依赖 C 语言代码的函数,变量和类型,自动生成 .h 头文件

可选类型而非空指针

交叉编译是主要用例

相关文章

所以很多人都会选择将这些生活琐事来交给智能化产品,在众多...
“昨天的经历都将成为明天的力量。” 将绝大部分精力都奉献给...
最近,全球知名的通信产业盛会MWC 2024(2024世界移动通信大...
今年上半年有很多值得关注的机型,其中华为最新的影像旗舰华...
目前,2024世界移动通信大会(MWC)正在西班牙巴塞罗那举行,值...
就在去年,真我推出了11 Pro+,用一个2亿像素传感器和zoom变...