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
This commit is contained in:
mlugg 2025-05-16 13:37:30 +01:00 committed by Alex Rønne Petersen
parent f377ea1060
commit 7218218040
No known key found for this signature in database

View file

@ -740,7 +740,7 @@ fn runStepNames(
if (run.prominent_compile_errors and total_compile_errors > 0) { if (run.prominent_compile_errors and total_compile_errors > 0) {
for (step_stack.keys()) |s| { for (step_stack.keys()) |s| {
if (s.result_error_bundle.errorMessageCount() > 0) { if (s.result_error_bundle.errorMessageCount() > 0) {
s.result_error_bundle.renderToStdErr(.{ .ttyconf = ttyconf, .include_reference_trace = (b.reference_trace orelse 0) > 0 }); s.result_error_bundle.renderToStdErr(.{ .ttyconf = ttyconf });
} }
} }
@ -1119,11 +1119,7 @@ fn workerMakeOneStep(
defer std.debug.unlockStdErr(); defer std.debug.unlockStdErr();
const gpa = b.allocator; const gpa = b.allocator;
const options: std.zig.ErrorBundle.RenderOptions = .{ printErrorMessages(gpa, s, .{ .ttyconf = run.ttyconf }, run.stderr, run.prominent_compile_errors) catch {};
.ttyconf = run.ttyconf,
.include_reference_trace = (b.reference_trace orelse 0) > 0,
};
printErrorMessages(gpa, s, options, run.stderr, run.prominent_compile_errors) catch {};
} }
handle_result: { handle_result: {