diff --git a/FABRIC-2.md b/FABRIC-2.md index cb6b339..95a7d2e 100644 --- a/FABRIC-2.md +++ b/FABRIC-2.md @@ -2060,3 +2060,68 @@ bare_metal/runs/acl-rwt-20260820/`) ran with the buggy shuffle — its per-run-m is not a valid uniform permutation, though total row count (480/cell) and the mechanism's completion/error-free behavior are unaffected by this bug and remain valid findings. Whether to re-run Section M's campaign against the fixed shuffle is Captain Bob's call, not made here. + +## O. Stadium-relaunch campaign re-run against the fixed shuffle, and a real naming/dead-code +finding on "ACL-RWT" — 2026-08-20 + +**Full 9-cell campaign re-run clean, against the fixed `SWAP-MTX`, one continuous sitting, +randomized order, independent `clean` build per cell.** Superseding Section M's dataset: +`experiments/bare_metal/runs/acl-rwt-20260820-fixed/`. All 9 cells: 480/480 rows, all 16 `cfg` +values represented exactly 30 times each (a genuine uniform permutation, for the first time), +zero errors. + +**Full deep-dive report built and committed, per Captain Bob's explicit brief (analyze the 9 +cells as a conglomerate Latin square, then dive into each cell's own data, then cover every +within-ISA and cross-factor interaction — not averaged away).** 127 pages, compiled clean, no +undefined references: `experiments/bare_metal/analysis/report/stadium_relaunch_report.pdf`. +Generated programmatically (`analyse_stadium_relaunch_fixed.R` for the aggregate layer, +`generate_stadium_deepdive.R` for per-cell/per-ISA/interaction/appendix layers), not +hand-authored — content at this scale needs to stay data-driven. Structure: front matter +(context, methodology, the two mechanism bugs found this session — console-interleaving in +`EXEC-DOE`'s own output, and `SWAP-MTX`, Section N); aggregate Latin square; 9 per-cell +sections (cfg-level distribution + summary table + rep-order execution-trajectory chart); 3 +per-ISA sections (within-architecture seed comparison); 6 factor-interaction sections (every +pairwise combination of the 4 L8 binary factors, both `infer_dec_q` and `early_exit` responses, +faceted by architecture); 4 per-factor linear-response sections; discussion/conclusion; a +raw-data appendix (all 4,320 rows, `run_id`-ordered, primary-source backing for every +statistic above). + +**Headline finding, reinforcing the original ACL-RWT report's own central thesis:** seven of +sixteen recorded fields (`l8_mode`, `win_div`, `infer_win`, `infer_var_q`, `bc_mean_q`, +`bb_mean_q`, `fit_q`) are exactly invariant across all 4,320 rows — zero variance, not merely +statistically indistinguishable. The one field with real variation, `infer_dec_q` (Loop 6's +decay-slope inference estimator), depends only on run seed and is architecture-invariant to +floating-point precision: every `arch` term and every `arch` interaction term in the full ANOVA +model resolves to exactly `Sum Sq = 0, p = 1.000`; a parallel logistic model of `early_exit` +returns every architecture coefficient at ~$10^{-15}$ (collinearity noise). The seed effect is +large and real (Kruskal-Wallis $H=50.76$, $p=9.5\times10^{-12}$, identical across all three +architectures) and traced, via the per-cell rep-order trajectory charts, to genuine +path-dependence in the estimator's convergence — different seeds visit the same 16 configs the +same 30 times each, but in a different order, and the adaptively-converging estimator lands on +a different characteristic value depending on that order. Not evidence of nondeterminism: the +same seed on three different architectures produces the identical value to the digit, every +time. + +**A real, previously-undocumented finding surfaced while scoping the next step (a paired +ACL-enabled/disabled overhead measurement), before any such measurement was run.** Captain Bob +asked to look at ACL's current state first. `capsules/ACL.4th`'s own Block 4007 comment +records that blocks 4010–4014 used to hold an "ACL Rolling Window of Truth" TTL mechanism +(`ACL-RECHECK-RW`/`ACL-TTL-COMPUTE-RW`/`ACL-RWT-SLOPE-COMPUTE`) — almost certainly what the +"ACL-RWT" campaign name (CLAUDE.md's own `+0.0054%–+0.0088%` overhead figure) was named after. +That mechanism was removed 2026-07-08, with the comment stating plainly it was **dead code from +the day it was written**: the C hot path's `acl_recheck()` looks up the word named exactly +`"ACL-RECHECK"` (11 chars), never `"ACL-RECHECK-RW"` (14 chars), so `ACL-RECHECK-RW` was never +actually reachable regardless of whether `ACL-BOOT-RW` pinned it. The original ACL-RWT campaign +ran 15–16 June 2026 — three weeks before that removal — meaning it's likely the original +`+0.0054%–+0.0088%` numbers measured the plain fallback TTL path (`ACL-TTL-COMPUTE`: `heat/4 + +256`, capped at 65535, Block 4003–4004 — confirmed still live and reachable today via +`ACL-INIT-PRIMITIVES` stamping every word to `ACL_MODE_TTL` by default, `src/word_source/ +acl_words.c:286-299`) rather than the RWT-named mechanism its own name implies, since that +mechanism could never have executed. Not re-litigated or corrected in the original report here +— flagged as a real historical-accuracy question, not settled. + +**Naming decision for any future paired ACL-enabled/disabled measurement, ruled 2026-08-20:** +use an accurate name (e.g. "ACL-TTL overhead") rather than continuing to call it "ACL-RWT" — +the RWT mechanism no longer exists in the codebase at all, live or dead, so the name would +describe nothing real going forward. The paired measurement itself (item 5.1/F.3's own +remaining open item) is not started as of this entry.