This commit is contained in:
2026-02-24 09:48:12 +02:00
parent 4a34604c69
commit 175652235f

View File

@@ -743,7 +743,7 @@ pub fn build(b: *std.Build) !void {
prepare_zig0.dependOn(air_gen_result.step);
const test_zig0_step = b.step("test-zig0", "Run zig0 C implementation tests");
addZig0TestStep(b, test_zig0_step, zig0_target, optimize, zig0_cc, zig0_no_exec, zig0_valgrind, zig0_test_timeout, air_gen_result.air_dir);
addZig0TestStep(b, test_zig0_step, zig0_target, optimize, zig0_cc, zig0_no_exec, zig0_valgrind, zig0_test_timeout, air_gen_result);
// zig0 standalone executable
const zig0_step = b.step("zig0", "Build zig0 standalone executable");
@@ -838,7 +838,7 @@ pub fn build(b: *std.Build) !void {
all_zig0.dependOn(&zig0_fmt_check.step);
all_zig0.dependOn(lint_zig0);
for (zig0_compilers) |compiler| {
addZig0TestStep(b, all_zig0, zig0_target, optimize, compiler, false, zig0_valgrind, zig0_test_timeout, air_gen_result.air_dir);
addZig0TestStep(b, all_zig0, zig0_target, optimize, compiler, false, zig0_valgrind, zig0_test_timeout, air_gen_result);
}
}
@@ -1739,6 +1739,8 @@ fn addAirGen(b: *std.Build, exe_options: *std.Build.Step.Options) AirGenResult {
const gen_exe = b.addExecutable(.{
.name = "air_gen",
.root_module = gen_mod,
.use_llvm = false,
.use_lld = false,
});
// Run generator: air_gen <output_dir> [<name> <resolved_path>]...
@@ -1767,7 +1769,7 @@ fn addZig0TestStep(
no_exec: bool,
valgrind: bool,
test_timeout: ?[]const u8,
air_dir: std.Build.LazyPath,
air_gen: AirGenResult,
) void {
// Step 1: Compile Zig test code to .o (cached independently of C objects).
// NOTE: test_mod does NOT import zig_internals — stage0 tests are fast.
@@ -1781,10 +1783,10 @@ fn addZig0TestStep(
test_mod.linkSystemLibrary("c", .{});
// Make pre-computed AIR data available to tests.
test_mod.addAnonymousImport("air_tag_names", .{
.root_source_file = air_dir.path(b, "tag_names.zig"),
.root_source_file = air_gen.air_dir.path(b, "tag_names.zig"),
});
test_mod.addAnonymousImport("air_data", .{
.root_source_file = air_dir.path(b, "air_data.zig"),
.root_source_file = air_gen.air_dir.path(b, "air_data.zig"),
});
const test_obj = b.addTest(.{
@@ -1793,6 +1795,7 @@ fn addZig0TestStep(
.use_llvm = false,
.use_lld = false,
});
test_obj.step.dependOn(air_gen.step);
// Step 2: Link test_obj + C objects into final executable.
// No more dumper_obj — AIR is pre-computed at build time.