Follow-up to #836, which merged the uniform -Werror=switch gate as-is. The gate is correct but costs ~50s in section [99i], dominated by process spawn: 22 separate make -n -B <target> parses. Every CI leg that runs the suite pays it.
A single-pass implementation was sketched in #836's description as straightforward — e.g. one make -n -B target1 target2 ... invocation with per-target output attribution, or batching the dry runs — while keeping the per-target zero-emission assertion intact (that assertion is the load-bearing anti-vacuity guard and must survive any batching; per-target attribution is the constraint that makes this nontrivial enough to be interesting).
Acceptance: [99i] wall time materially down (say under 15s), --selftest unchanged and green, per-target zero-emission failure still names its target, examined-count output unchanged (318 on a clean tree today).
Follow-up to #836, which merged the uniform
-Werror=switchgate as-is. The gate is correct but costs ~50s in section[99i], dominated by process spawn: 22 separatemake -n -B <target>parses. Every CI leg that runs the suite pays it.A single-pass implementation was sketched in #836's description as straightforward — e.g. one
make -n -B target1 target2 ...invocation with per-target output attribution, or batching the dry runs — while keeping the per-target zero-emission assertion intact (that assertion is the load-bearing anti-vacuity guard and must survive any batching; per-target attribution is the constraint that makes this nontrivial enough to be interesting).Acceptance:
[99i]wall time materially down (say under 15s),--selftestunchanged and green, per-target zero-emission failure still names its target, examined-count output unchanged (318 on a clean tree today).