Zig 0.16.0 发布说明:"Juicy Main"
摘要
Zig 0.16.0 发布了一个名为 'Juicy Main' 的新特性,它为 main() 函数提供了依赖注入功能,方便地访问分配器、IO、环境变量和命令行参数。
暂无内容
查看缓存全文
缓存时间: 2026/04/20 08:27
# Zig 0.16.0 发布说明:“Juicy Main”
来源:https://simonwillison.net/2026/Apr/15/juicy-main/
2026年4月15日 \- 链接博客
**Zig 0.16.0 发布说明:“Juicy Main”(https://ziglang.org/download/0.16.0/release-notes.html#Juicy-Main)**(来自 https://lobste.rs/s/4vvozb/zig_0_16_0_release_notes)Zig 的发布说明*真的非常出色*——全面、详细,并且每个新功能都附有相关的使用示例。
在新发布的 Zig 0.16.0 中,特别值得注意的是他们称之为“Juicy Main”的特性——这是一个针对程序 `main()` 函数的依赖注入功能,通过接受一个 `process.Init` 参数,可以访问一个包含有用属性的结构体:
``
const std = @import("std");
pub fn main(init: std.process.Init) !void {
/// 用于临时堆分配的通用分配器:
const gpa = init.gpa;
/// 默认的 Io 实现:
const io = init.io;
/// 访问环境变量:
std.log.info("{d} 个环境变量", .{init.environ_map.count()});
/// 访问命令行参数
const args = try init.minimal.args.toSlice(
init.arena.allocator()
);
}
``
相似文章
Zig 构建速度正在提升
Zig 0.15 相比 0.14 在编译时性能有显著提升,构建脚本编译时间从约 7 秒降至约 1.7 秒,完整构建时间从 41 秒降至 32 秒,且仍使用 LLVM。本文重点介绍了自托管后端和增量编译方面的进展。
构建系统重构
Zig 构建系统已经重构,将配置器和制造器进程分离,支持缓存、发布模式编译,并且'zig build'命令速度提升高达90%。这一变化提高了性能,并允许构建系统在不减速的情况下增加功能。
Zig 示例
Zig by Example 是一本 Zig 编程语言的实践入门教程,包含针对版本 0.16 的带注释的示例程序。
所有包管理功能已从编译器移至构建系统
Zig将所有包管理功能从编译器移至构建系统,从而减小二进制文件大小,并简化补丁和安全检查。这一架构变化改进了构建服务器协议,并解除了ZLS集成的阻塞。
Zig ELF 链接器改进开发日志
新的 Zig ELF 链接器现在支持外部库和 C 源码的快速增量编译,在 x86_64 Linux 上能够实现毫秒级重建。