test framework phase 3/4: black_box barrier + three-signal complexity gate, armed #139
Reference in New Issue
Block a user
Delete Branch "wt/soul-runtime-reconcile"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 4 is armed and proven in both directions — on live workloads, not replayed series:
The healthy per-character scan passes; a deliberately quadratic rescan-from-zero — el #132's exact shape — fires the gate. The quadratic specimen exists specifically because a gate only ever proven to pass is decoration.
Three signals, because allocation alone is blind. el #132's quadratic was pure CPU with zero allocation, so an allocation-only gate would have passed it clean.
fitprobe.elcarries three controlled specimens proving the classifier:linear(O(n) everywhere),accum(count linear, bytes quadratic — count alone misses it), andcompute(both allocation signals FLAT, only time catches it — #132's shape). None depends on a real defect existing.el_black_boxis a genuine barrier (inline asm,"+r"constraint, memory clobber). Necessary: an earlier accumulator specimen reported 0 µs at every n while returning a numerically correct answer — clang had closed the loop to a multiply. A harness that trusts the author to defeat the optimiser measures nothing and reports success while doing it.The classifier caught its own bad measurement. First run returned INDETERMINATE rather than passing an unwarmed sweep. The scan is linear — ratios 3.37, 2.92, 1.76, 1.65, head is cold cache, tail is truth. So
elb_spread_okwas wrong: judging spread across the whole sweep rejected correct data. It now judges the asymptotic tail, which is what a complexity bound actually claims, with warmup taken and discarded per point. REFUSED/INDETERMINATE earned their place within minutes of existing — without them the gate would have reported a confident O(n²) on healthy code.Independently verified: branch has merged dev and contains every compiler fix from #131–#138; the scan workload reproduces at flat
ns/char=2across a 16× range in n.Purely additive: 707 insertions, no deletions.