用途:在编写或迁移 Zig 0.13.0 至 0.15.1 的代码前查阅本补丁,按被改动的子系统核对参考,避免使用已移除而非软弃用的旧名称。基线为 Zig 0.12.x。
主要能力:语言与内建部分覆盖移除的语法、switch、字面量、反射、原子操作、指针、汇编与类型系统规则;0.15.1 移除 usingnamespace、async、await 与 @frameSize,建议改用显式声明、void/{}、条件性 @compileError 以及命名零位字段加 @fieldParentPtr;0.14.0 移除 @fence,改用带序原子操作,@branchHint 取代 @setCold。反射标签改为小写,关键字标签需加引号,@export 在 0.14.0 接受指针,可用 @FieldType 替代 std.meta.FieldType。内存与容器:ArrayList 在 0.15.1 变为 unmanaged,用 .empty 初始化并把分配器传给操作与 deinit,需要持有分配器时用 std.array_list.Managed;DebugAllocator 取代 GeneralPurposeAllocator,另有 std.heap.smp_allocator。I/O 与格式化:以非泛型 std.Io.Reader / Writer 取代旧流类型,缓冲区由调用方持有,旧 writer 可用 adaptToNewApi 临时桥接;格式化用 {f} 与 {any},format 方法签名改为值加 *std.Io.Writer。构建与工具:addExecutable 等改用 root_module,配合 b.createModule,头文件相关 API 多用 LazyPath,源树写入改用 b.addUpdateSourceFiles,支持 --watch、--debounce、fuzz 与实验性 -fincremental。标准库迁移包括 std.process.Child、std.StaticStringMap、std.heap.pageSize、std.Random、std.DoublyLinkedList 等,std.rand、std.zig.CrossTarget、std.TailQueue 已移除。
使用方式:按被改动的子系统查阅对应参考条目,再实施迁移。
适用场景:升级或跨版本维护 Zig 项目、使用新构建系统与 I/O 接口、排查已移除 API。
限制:仅覆盖上述版本区间;部分内容如增量编译为实验性、需显式开启,且与某些旧特性不兼容;平台支持下限与调试后端行为因目标而异,迁移前应确认部署目标。资料未提供安装命令、收费与平台细节。