authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-04-15 23:53:39+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-04-16 00:00:44+01:00
log794edc81d0b72fa644ac4a6d9b9656e960c68fb8
tree8b97fa89492a5d7b702ca035d9a55a0e80e5bb45
parenta999fc9059cf4daad462294a08874cc1c2d402af
signaturelock-open Commit is signed but in an unrecognized format.

Zcu.PerThread: make debug logs less noisy

I often go through these logs when debugging issues with incremental compilation, but the first thing I do is always comment out some of these lines, because they're just way too noisy. I don't need to know every time Sema checks that a unit is up-to-date, I only care when things actually get analyzed! This decreases the size of `--debug-log zcu` by an order of magnitude (or more) in most cases.

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

src/Zcu/PerThread.zig+7-15
...@@ -1073,8 +1073,6 @@ pub fn ensureMemoizedStateUpToDate(...@@ -1073,8 +1073,6 @@ pub fn ensureMemoizedStateUpToDate(
10731073
1074 const unit: AnalUnit = .wrap(.{ .memoized_state = stage });1074 const unit: AnalUnit = .wrap(.{ .memoized_state = stage });
10751075
1076 log.debug("ensureMemoizedStateUpToDate", .{});
1077
1078 assert(!zcu.analysis_in_progress.contains(unit));1076 assert(!zcu.analysis_in_progress.contains(unit));
10791077
1080 const was_outdated = zcu.clearOutdatedState(unit);1078 const was_outdated = zcu.clearOutdatedState(unit);
...@@ -1142,6 +1140,8 @@ fn analyzeMemoizedState(...@@ -1142,6 +1140,8 @@ fn analyzeMemoizedState(
1142 const comp = zcu.comp;1140 const comp = zcu.comp;
1143 const gpa = comp.gpa;1141 const gpa = comp.gpa;
11441142
1143 log.debug("analyzeMemoizedState({t})", .{stage});
1144
1145 const unit: AnalUnit = .wrap(.{ .memoized_state = stage });1145 const unit: AnalUnit = .wrap(.{ .memoized_state = stage });
11461146
1147 try zcu.analysis_in_progress.putNoClobber(gpa, unit, reason);1147 try zcu.analysis_in_progress.putNoClobber(gpa, unit, reason);
...@@ -1182,8 +1182,6 @@ pub fn ensureComptimeUnitUpToDate(pt: Zcu.PerThread, cu_id: InternPool.ComptimeU...@@ -1182,8 +1182,6 @@ pub fn ensureComptimeUnitUpToDate(pt: Zcu.PerThread, cu_id: InternPool.ComptimeU
11821182
1183 const anal_unit: AnalUnit = .wrap(.{ .@"comptime" = cu_id });1183 const anal_unit: AnalUnit = .wrap(.{ .@"comptime" = cu_id });
11841184
1185 log.debug("ensureComptimeUnitUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
1186
1187 assert(!zcu.analysis_in_progress.contains(anal_unit));1185 assert(!zcu.analysis_in_progress.contains(anal_unit));
11881186
1189 // Determine whether or not this `ComptimeUnit` is outdated. For this kind of `AnalUnit`, that's1187 // Determine whether or not this `ComptimeUnit` is outdated. For this kind of `AnalUnit`, that's
...@@ -1345,8 +1343,6 @@ pub fn ensureTypeLayoutUpToDate(...@@ -1345,8 +1343,6 @@ pub fn ensureTypeLayoutUpToDate(
13451343
1346 const anal_unit: AnalUnit = .wrap(.{ .type_layout = ty.toIntern() });1344 const anal_unit: AnalUnit = .wrap(.{ .type_layout = ty.toIntern() });
13471345
1348 log.debug("ensureTypeLayoutUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
1349
1350 assert(!zcu.analysis_in_progress.contains(anal_unit));1346 assert(!zcu.analysis_in_progress.contains(anal_unit));
13511347
1352 const was_outdated: bool = outdated: {1348 const was_outdated: bool = outdated: {
...@@ -1413,6 +1409,8 @@ pub fn ensureTypeLayoutUpToDate(...@@ -1413,6 +1409,8 @@ pub fn ensureTypeLayoutUpToDate(
1413 };1409 };
1414 defer sema.deinit();1410 defer sema.deinit();
14151411
1412 log.debug("ensureTypeLayoutUpToDate {f} (out of date, resolving)", .{zcu.fmtAnalUnit(anal_unit)});
1413
1416 const result = switch (ty.zigTypeTag(zcu)) {1414 const result = switch (ty.zigTypeTag(zcu)) {
1417 .@"enum" => Sema.type_resolution.resolveEnumLayout(&sema, ty),1415 .@"enum" => Sema.type_resolution.resolveEnumLayout(&sema, ty),
1418 .@"struct" => Sema.type_resolution.resolveStructLayout(&sema, ty),1416 .@"struct" => Sema.type_resolution.resolveStructLayout(&sema, ty),
...@@ -1478,8 +1476,6 @@ pub fn ensureStructDefaultsUpToDate(...@@ -1478,8 +1476,6 @@ pub fn ensureStructDefaultsUpToDate(
14781476
1479 const anal_unit: AnalUnit = .wrap(.{ .struct_defaults = ty.toIntern() });1477 const anal_unit: AnalUnit = .wrap(.{ .struct_defaults = ty.toIntern() });
14801478
1481 log.debug("ensureStructDefaultsUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
1482
1483 assert(!zcu.analysis_in_progress.contains(anal_unit));1479 assert(!zcu.analysis_in_progress.contains(anal_unit));
14841480
1485 const was_outdated: bool = outdated: {1481 const was_outdated: bool = outdated: {
...@@ -1536,6 +1532,8 @@ pub fn ensureStructDefaultsUpToDate(...@@ -1536,6 +1532,8 @@ pub fn ensureStructDefaultsUpToDate(
1536 };1532 };
1537 defer sema.deinit();1533 defer sema.deinit();
15381534
1535 log.debug("ensureStructDefaultsUpToDate {f} (out of date, resolving)", .{zcu.fmtAnalUnit(anal_unit)});
1536
1539 const new_failed: bool = if (Sema.type_resolution.resolveStructDefaults(&sema, ty)) failed: {1537 const new_failed: bool = if (Sema.type_resolution.resolveStructDefaults(&sema, ty)) failed: {
1540 break :failed false;1538 break :failed false;
1541 } else |err| switch (err) {1539 } else |err| switch (err) {
...@@ -1584,8 +1582,6 @@ pub fn ensureNavValUpToDate(...@@ -1584,8 +1582,6 @@ pub fn ensureNavValUpToDate(
1584 const anal_unit: AnalUnit = .wrap(.{ .nav_val = nav_id });1582 const anal_unit: AnalUnit = .wrap(.{ .nav_val = nav_id });
1585 const nav = ip.getNav(nav_id);1583 const nav = ip.getNav(nav_id);
15861584
1587 log.debug("ensureNavValUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
1588
1589 assert(!zcu.analysis_in_progress.contains(anal_unit));1585 assert(!zcu.analysis_in_progress.contains(anal_unit));
15901586
1591 try zcu.ensureNavValAnalysisQueued(nav_id);1587 try zcu.ensureNavValAnalysisQueued(nav_id);
...@@ -1946,8 +1942,6 @@ pub fn ensureNavTypeUpToDate(...@@ -1946,8 +1942,6 @@ pub fn ensureNavTypeUpToDate(
1946 const anal_unit: AnalUnit = .wrap(.{ .nav_ty = nav_id });1942 const anal_unit: AnalUnit = .wrap(.{ .nav_ty = nav_id });
1947 const nav = ip.getNav(nav_id);1943 const nav = ip.getNav(nav_id);
19481944
1949 log.debug("ensureNavTypeUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
1950
1951 assert(!zcu.analysis_in_progress.contains(anal_unit));1945 assert(!zcu.analysis_in_progress.contains(anal_unit));
19521946
1953 try zcu.ensureNavValAnalysisQueued(nav_id);1947 try zcu.ensureNavValAnalysisQueued(nav_id);
...@@ -2191,8 +2185,6 @@ pub fn ensureFuncBodyUpToDate(...@@ -2191,8 +2185,6 @@ pub fn ensureFuncBodyUpToDate(
21912185
2192 const anal_unit: AnalUnit = .wrap(.{ .func = func_index });2186 const anal_unit: AnalUnit = .wrap(.{ .func = func_index });
21932187
2194 log.debug("ensureFuncBodyUpToDate {f}", .{zcu.fmtAnalUnit(anal_unit)});
2195
2196 assert(!zcu.analysis_in_progress.contains(anal_unit));2188 assert(!zcu.analysis_in_progress.contains(anal_unit));
21972189
2198 const func = zcu.funcInfo(func_index);2190 const func = zcu.funcInfo(func_index);
...@@ -2282,7 +2274,7 @@ fn analyzeFuncBody(...@@ -2282,7 +2274,7 @@ fn analyzeFuncBody(
2282 else2274 else
2283 .none;2275 .none;
22842276
2285 log.debug("analyze and generate fn body {f}", .{zcu.fmtAnalUnit(anal_unit)});2277 log.debug("analyzeFuncBody {f}", .{zcu.fmtAnalUnit(anal_unit)});
22862278
2287 var air = try pt.analyzeFuncBodyInner(func_index, reason);2279 var air = try pt.analyzeFuncBodyInner(func_index, reason);
2288 var air_owned = true;2280 var air_owned = true;