authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-03 15:28:38-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-15 10:48:13-07:00
logd695f36e70f162e4e84087df1ccad5430e53d786
treee6bc313e996099c9093df2a2804f4a00bd5f4060
parent41a5ad28c9a651efd2822f43486a71ca48ace726

build runner supports reporting cached status and duration


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

lib/build_runner.zig+35-1
......@@ -501,8 +501,42 @@ fn printTreeStep(
501501
502502 .success => {
503503 try ttyconf.setColor(stderr, .Green);
504 try stderr.writeAll(" success\n");
504 if (s.result_cached) {
505 try stderr.writeAll(" cached");
506 } else {
507 try stderr.writeAll(" success");
508 }
505509 try ttyconf.setColor(stderr, .Reset);
510 if (s.result_duration_ns) |ns| {
511 try ttyconf.setColor(stderr, .Dim);
512 if (ns >= std.time.ns_per_min) {
513 try stderr.writer().print(" {d}m", .{ns / std.time.ns_per_min});
514 } else if (ns >= std.time.ns_per_s) {
515 try stderr.writer().print(" {d}s", .{ns / std.time.ns_per_s});
516 } else if (ns >= std.time.ns_per_ms) {
517 try stderr.writer().print(" {d}ms", .{ns / std.time.ns_per_ms});
518 } else {
519 try stderr.writer().print(" {d}ns", .{ns});
520 }
521 try ttyconf.setColor(stderr, .Reset);
522 }
523 if (s.result_peak_rss != 0) {
524 const rss = s.result_peak_rss;
525 try ttyconf.setColor(stderr, .Dim);
526 if (rss >= 1000_000_000_000) {
527 try stderr.writer().print(" {d}G MaxRSS", .{rss / 1000_000_000_000});
528 } else if (rss >= 1000_000_000) {
529 try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000_000});
530 } else if (rss >= 1000_000) {
531 try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000});
532 } else if (rss >= 1000) {
533 try stderr.writer().print(" {d}K MaxRSS", .{rss / 1000});
534 } else {
535 try stderr.writer().print(" {d}B MaxRSS", .{rss});
536 }
537 try ttyconf.setColor(stderr, .Reset);
538 }
539 try stderr.writeAll("\n");
506540 },
507541
508542 .skipped => {
lib/std/Build/Step.zig+7
......@@ -13,6 +13,10 @@ debug_stack_trace: [n_debug_stack_frames]usize,
1313
1414result_error_msgs: std.ArrayListUnmanaged([]const u8),
1515result_error_bundle: std.zig.ErrorBundle,
16result_cached: bool,
17result_duration_ns: ?u64,
18/// 0 means unavailable or not reported.
19result_peak_rss: usize,
1620
1721pub const MakeFn = *const fn (self: *Step, prog_node: *std.Progress.Node) anyerror!void;
1822
......@@ -103,6 +107,9 @@ pub fn init(options: Options) Step {
103107 .debug_stack_trace = addresses,
104108 .result_error_msgs = .{},
105109 .result_error_bundle = std.zig.ErrorBundle.empty,
110 .result_cached = false,
111 .result_duration_ns = null,
112 .result_peak_rss = 0,
106113 };
107114}
108115