Commit d695f36e70
Changed files (2)
lib
std
Build
lib/std/Build/Step.zig
@@ -13,6 +13,10 @@ debug_stack_trace: [n_debug_stack_frames]usize,
result_error_msgs: std.ArrayListUnmanaged([]const u8),
result_error_bundle: std.zig.ErrorBundle,
+result_cached: bool,
+result_duration_ns: ?u64,
+/// 0 means unavailable or not reported.
+result_peak_rss: usize,
pub const MakeFn = *const fn (self: *Step, prog_node: *std.Progress.Node) anyerror!void;
@@ -103,6 +107,9 @@ pub fn init(options: Options) Step {
.debug_stack_trace = addresses,
.result_error_msgs = .{},
.result_error_bundle = std.zig.ErrorBundle.empty,
+ .result_cached = false,
+ .result_duration_ns = null,
+ .result_peak_rss = 0,
};
}
lib/build_runner.zig
@@ -501,8 +501,42 @@ fn printTreeStep(
.success => {
try ttyconf.setColor(stderr, .Green);
- try stderr.writeAll(" success\n");
+ if (s.result_cached) {
+ try stderr.writeAll(" cached");
+ } else {
+ try stderr.writeAll(" success");
+ }
try ttyconf.setColor(stderr, .Reset);
+ if (s.result_duration_ns) |ns| {
+ try ttyconf.setColor(stderr, .Dim);
+ if (ns >= std.time.ns_per_min) {
+ try stderr.writer().print(" {d}m", .{ns / std.time.ns_per_min});
+ } else if (ns >= std.time.ns_per_s) {
+ try stderr.writer().print(" {d}s", .{ns / std.time.ns_per_s});
+ } else if (ns >= std.time.ns_per_ms) {
+ try stderr.writer().print(" {d}ms", .{ns / std.time.ns_per_ms});
+ } else {
+ try stderr.writer().print(" {d}ns", .{ns});
+ }
+ try ttyconf.setColor(stderr, .Reset);
+ }
+ if (s.result_peak_rss != 0) {
+ const rss = s.result_peak_rss;
+ try ttyconf.setColor(stderr, .Dim);
+ if (rss >= 1000_000_000_000) {
+ try stderr.writer().print(" {d}G MaxRSS", .{rss / 1000_000_000_000});
+ } else if (rss >= 1000_000_000) {
+ try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000_000});
+ } else if (rss >= 1000_000) {
+ try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000});
+ } else if (rss >= 1000) {
+ try stderr.writer().print(" {d}K MaxRSS", .{rss / 1000});
+ } else {
+ try stderr.writer().print(" {d}B MaxRSS", .{rss});
+ }
+ try ttyconf.setColor(stderr, .Reset);
+ }
+ try stderr.writeAll("\n");
},
.skipped => {