authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-05-16 13:37:30+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-05-16 13:40:52+01:00
log46d7e808dcef3c9f9200d6cc1ed4e3a787ba054d
treec89e8bde28f46f77d1b3863a841fc2535cb1788a
parent16481c8ef347f7fc5ffdc4636cf904b335a6dc09
signaturelock-open Commit is signed but in an unrecognized format.

build runner: don't incorrectly omit reference traces

It's incorrect to ever set `include_reference_trace` here, because the compiler has already given or not given reference traces depending on the `-freference-trace` option propagated to the compiler process by `std.Build.Step.Compile`. Perhaps in future we could make the compiler always return the reference trace when communicating over the compiler protocol; that'd be more versatile than the current behavior, because the build runner could, for instance, show a reference trace on-demand without having to even invoke the compiler. That seems really useful, since the reference trace is *often* unnecessary noise, but *sometimes* essential. However, we don't live in that world right now, so passing the option here doesn't make sense. Resolves: #23415

1 files changed, 2 insertions(+), 6 deletions(-)

lib/compiler/build_runner.zig+2-6
......@@ -750,7 +750,7 @@ fn runStepNames(
750750 if (run.prominent_compile_errors and total_compile_errors > 0) {
751751 for (step_stack.keys()) |s| {
752752 if (s.result_error_bundle.errorMessageCount() > 0) {
753 s.result_error_bundle.renderToStdErr(.{ .ttyconf = ttyconf, .include_reference_trace = (b.reference_trace orelse 0) > 0 });
753 s.result_error_bundle.renderToStdErr(.{ .ttyconf = ttyconf });
754754 }
755755 }
756756
......@@ -1129,11 +1129,7 @@ fn workerMakeOneStep(
11291129 defer std.debug.unlockStdErr();
11301130
11311131 const gpa = b.allocator;
1132 const options: std.zig.ErrorBundle.RenderOptions = .{
1133 .ttyconf = run.ttyconf,
1134 .include_reference_trace = (b.reference_trace orelse 0) > 0,
1135 };
1136 printErrorMessages(gpa, s, options, run.stderr, run.prominent_compile_errors) catch {};
1132 printErrorMessages(gpa, s, .{ .ttyconf = run.ttyconf }, run.stderr, run.prominent_compile_errors) catch {};
11371133 }
11381134
11391135 handle_result: {