authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-06-09 15:33:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-06-09 20:00:59-07:00
log2bf532fc23ec014201bb1e69cb3b44e37e23f14c
treed87c47ac302f67d82d4d9692cf8181925152493f
parentbc36da0cb80eebffbbd86a430b435492e00f8378

stage2: use std.debug.Trace only when explicitly enabled

Because it bumps up the stack space requirements, which is making a test case fail on aarch64 drone CI.

4 files changed, 7 insertions(+), 1 deletions(-)

build.zig+3
...@@ -131,6 +131,7 @@ pub fn build(b: *Builder) !void {...@@ -131,6 +131,7 @@ pub fn build(b: *Builder) !void {
131 const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse enable_llvm;131 const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse enable_llvm;
132 const strip = b.option(bool, "strip", "Omit debug information") orelse false;132 const strip = b.option(bool, "strip", "Omit debug information") orelse false;
133 const use_zig0 = b.option(bool, "zig0", "Bootstrap using zig0") orelse false;133 const use_zig0 = b.option(bool, "zig0", "Bootstrap using zig0") orelse false;
134 const value_tracing = b.option(bool, "value-tracing", "Enable extra state tracking to help troubleshoot bugs in the compiler (using the std.debug.Trace API)") orelse false;
134135
135 const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {136 const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {
136 if (strip) break :blk @as(u32, 0);137 if (strip) break :blk @as(u32, 0);
...@@ -353,6 +354,7 @@ pub fn build(b: *Builder) !void {...@@ -353,6 +354,7 @@ pub fn build(b: *Builder) !void {
353 exe_options.addOption(bool, "enable_tracy", tracy != null);354 exe_options.addOption(bool, "enable_tracy", tracy != null);
354 exe_options.addOption(bool, "enable_tracy_callstack", tracy_callstack);355 exe_options.addOption(bool, "enable_tracy_callstack", tracy_callstack);
355 exe_options.addOption(bool, "enable_tracy_allocation", tracy_allocation);356 exe_options.addOption(bool, "enable_tracy_allocation", tracy_allocation);
357 exe_options.addOption(bool, "value_tracing", value_tracing);
356 exe_options.addOption(bool, "is_stage1", is_stage1);358 exe_options.addOption(bool, "is_stage1", is_stage1);
357 exe_options.addOption(bool, "omit_stage2", omit_stage2);359 exe_options.addOption(bool, "omit_stage2", omit_stage2);
358 if (tracy) |tracy_path| {360 if (tracy) |tracy_path| {
...@@ -402,6 +404,7 @@ pub fn build(b: *Builder) !void {...@@ -402,6 +404,7 @@ pub fn build(b: *Builder) !void {
402 test_cases_options.addOption(bool, "enable_rosetta", b.enable_rosetta);404 test_cases_options.addOption(bool, "enable_rosetta", b.enable_rosetta);
403 test_cases_options.addOption(bool, "enable_darling", b.enable_darling);405 test_cases_options.addOption(bool, "enable_darling", b.enable_darling);
404 test_cases_options.addOption(u32, "mem_leak_frames", mem_leak_frames * 2);406 test_cases_options.addOption(u32, "mem_leak_frames", mem_leak_frames * 2);
407 test_cases_options.addOption(bool, "value_tracing", value_tracing);
405 test_cases_options.addOption(?[]const u8, "glibc_runtimes_dir", b.glibc_runtimes_dir);408 test_cases_options.addOption(?[]const u8, "glibc_runtimes_dir", b.glibc_runtimes_dir);
406 test_cases_options.addOption([:0]const u8, "version", try b.allocator.dupeZ(u8, version));409 test_cases_options.addOption([:0]const u8, "version", try b.allocator.dupeZ(u8, version));
407 test_cases_options.addOption(std.SemanticVersion, "semver", semver);410 test_cases_options.addOption(std.SemanticVersion, "semver", semver);
ci/azure/build.zig+2
...@@ -99,6 +99,7 @@ pub fn build(b: *Builder) !void {...@@ -99,6 +99,7 @@ pub fn build(b: *Builder) !void {
99 const force_gpa = b.option(bool, "force-gpa", "Force the compiler to use GeneralPurposeAllocator") orelse false;99 const force_gpa = b.option(bool, "force-gpa", "Force the compiler to use GeneralPurposeAllocator") orelse false;
100 const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse enable_llvm;100 const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse enable_llvm;
101 const strip = b.option(bool, "strip", "Omit debug information") orelse false;101 const strip = b.option(bool, "strip", "Omit debug information") orelse false;
102 const value_tracing = b.option(bool, "value-tracing", "Enable extra state tracking to help troubleshoot bugs in the compiler (using the std.debug.Trace API)") orelse false;
102103
103 const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {104 const mem_leak_frames: u32 = b.option(u32, "mem-leak-frames", "How many stack frames to print when a memory leak occurs. Tests get 2x this amount.") orelse blk: {
104 if (strip) break :blk @as(u32, 0);105 if (strip) break :blk @as(u32, 0);
...@@ -303,6 +304,7 @@ pub fn build(b: *Builder) !void {...@@ -303,6 +304,7 @@ pub fn build(b: *Builder) !void {
303 exe_options.addOption(bool, "enable_tracy", tracy != null);304 exe_options.addOption(bool, "enable_tracy", tracy != null);
304 exe_options.addOption(bool, "enable_tracy_callstack", tracy_callstack);305 exe_options.addOption(bool, "enable_tracy_callstack", tracy_callstack);
305 exe_options.addOption(bool, "enable_tracy_allocation", tracy_allocation);306 exe_options.addOption(bool, "enable_tracy_allocation", tracy_allocation);
307 exe_options.addOption(bool, "value_tracing", value_tracing);
306 exe_options.addOption(bool, "is_stage1", is_stage1);308 exe_options.addOption(bool, "is_stage1", is_stage1);
307 exe_options.addOption(bool, "omit_stage2", omit_stage2);309 exe_options.addOption(bool, "omit_stage2", omit_stage2);
308 if (tracy) |tracy_path| {310 if (tracy) |tracy_path| {
src/Module.zig+1-1
...@@ -2531,7 +2531,7 @@ const TracedOffset = struct {...@@ -2531,7 +2531,7 @@ const TracedOffset = struct {
2531 x: i32,2531 x: i32,
2532 trace: std.debug.Trace = .{},2532 trace: std.debug.Trace = .{},
25332533
2534 const want_tracing = std.debug.Trace.enabled;2534 const want_tracing = build_options.value_tracing;
2535};2535};
25362536
2537/// Resolving a source location into a byte offset may require doing work2537/// Resolving a source location into a byte offset may require doing work
src/config.zig.in+1
...@@ -8,6 +8,7 @@ pub const semver = @import("std").SemanticVersion.parse(version) catch unreachab...@@ -8,6 +8,7 @@ pub const semver = @import("std").SemanticVersion.parse(version) catch unreachab
8pub const enable_logging: bool = @ZIG_ENABLE_LOGGING_BOOL@;8pub const enable_logging: bool = @ZIG_ENABLE_LOGGING_BOOL@;
9pub const enable_link_snapshots: bool = false;9pub const enable_link_snapshots: bool = false;
10pub const enable_tracy = false;10pub const enable_tracy = false;
11pub const value_tracing = false;
11pub const is_stage1 = true;12pub const is_stage1 = true;
12pub const skip_non_native = false;13pub const skip_non_native = false;
13pub const omit_stage2: bool = @ZIG_OMIT_STAGE2_BOOL@;14pub const omit_stage2: bool = @ZIG_OMIT_STAGE2_BOOL@;