diff --git a/.run/P35/census/share_census.json b/.run/P35/census/share_census.json index ca7a6aa06..ac4333f8e 100644 --- a/.run/P35/census/share_census.json +++ b/.run/P35/census/share_census.json @@ -29,14 +29,14 @@ "copies": 11340, "instances": 30347 }, - "duplicate_text_classes": 6398, - "duplicate_text_sites": 17779, - "elapsed_s": 22.6, + "duplicate_text_classes": 6396, + "duplicate_text_sites": 17778, + "elapsed_s": 26.4, "flags": { "ALIAS": 32, "E": 3826, "F": 54, - "PINS": 533, + "PINS": 62, "TWIN-COVERED": 3748, "TYPEDEF": 74 }, diff --git a/.run/P35/census/share_census.txt b/.run/P35/census/share_census.txt index d39110faa..5d304841d 100644 --- a/.run/P35/census/share_census.txt +++ b/.run/P35/census/share_census.txt @@ -1,7 +1,7 @@ share_census: 218 binaries · 362,389 sig instances · 362,389 classified · 0 UNACCOUNTED · 10,180 h_exact classes with >=2 instances verdicts (classes): A 2,833 · B 149 · C 5,678 · D 1,518 · M 2 instances by verdict: A 236,946 · B 26,471 · C 12,712 · D 4,668 · M 4 - flags: ALIAS 32 · E 3,826 · F 54 · PINS 533 · TWIN-COVERED 3,748 · TYPEDEF 74 + flags: ALIAS 32 · E 3,826 · F 54 · PINS 62 · TWIN-COVERED 3,748 · TYPEDEF 74 SAME-VRAM UNREGISTERED (the phase's backlog): 51 classes · 6,518 instances · 160 private copies · 109 collapsible · 348,670 ins; of which twin-pending 0 classes / 0 instances TWIN-COVERED (one source directory per payload, T3): 3,507 classes · 7,040 instances CROSS-ADDRESS / CROSS-SPACE (deferred to the names phase): 3,801 classes · 30,347 instances · 11,340 private copies @@ -37,4 +37,4 @@ share_census: 218 binaries · 362,389 sig instances · 362,389 classified · 0 U B E,F 11852 x 2 0x80014554,0x8001455C,0x8001513C func_80014554,func_8001455c A - 141 x 167 0x80163C2C func_80163c2c A - 141 x 165 0x80178004 func_80178004 - macro sites 0 · duplicate-text classes 6,398 (17,779 sites) · elapsed 22.6 s + macro sites 0 · duplicate-text classes 6,396 (17,778 sites) · elapsed 26.4 s diff --git a/.run/P36/census/lever_census.json b/.run/P36/census/lever_census.json index 6bdc663dc..52f2da9b4 100644 --- a/.run/P36/census/lever_census.json +++ b/.run/P36/census/lever_census.json @@ -280,7 +280,7 @@ } }, "coverage_ok": true, - "elapsed_s": 22.1, + "elapsed_s": 22.0, "generated": "2026-09-11", "gte_levers": { "direct": 356, @@ -291,7 +291,7 @@ "via_macro": 94, "what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close" }, - "head": "31cf8695f", + "head": "676626afb", "headers": 3181, "levers_AB": { "asm": 1869, diff --git a/.run/P36/census/lever_census.txt b/.run/P36/census/lever_census.txt index d74e4ccc7..cc29b9527 100644 --- a/.run/P36/census/lever_census.txt +++ b/.run/P36/census/lever_census.txt @@ -12,7 +12,7 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas E asm-label 7802 1370 6432 1100 161 2090 0 7802 {'asm-label': 7802} F builtin 445 445 0 428 27 302 0 445 {'builtin': 445} G attribute 76 1 75 1 1 40 0 76 {'attribute': 76} - UNION A–D: 5,746 bodies · 1,007 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'main': 124, 'ov': 5352, 'md': 105, 'shared': 159, 'resident': 6} + UNION A–D: 5,746 bodies · 1,007 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5352, 'main': 124, 'shared': 159, 'md': 105, 'resident': 6} THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,010 sites in 1,980 bodies (674 distinct) · marked !FAKE 4,010 · UNMARKED 0 orphan !FAKE markers (no pin/asm site on the line nor below): 0 marked ordinary-C fakes kept by Drew's S104 ruling (a) (`do { } while (0)`, dead initialisers; NOT levers): 53 @@ -29,4 +29,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas src/shared/ov/func_80178004.h pins got 8 expected 26 N-A ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK - elapsed 22.1 s + elapsed 22.0 s diff --git a/README.md b/README.md index 713b483c5..e6ac3a7f2 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ originals; nothing "functionally equivalent" counts. What the repository claims One source per unique function (Phase 35): 103,015 function bodies written once in C (3,173 of them shared headers instantiated 262,573 times); 160 duplicate copies remain in 51 ledgered classes (declaration conflicts left for the types phase); 38 functions whose bytes vary per binary share one text through the text tier (2,030 sites); 1,668 same-address copies of 381 tiny bodies inside the cross-address classes are deferred to the names phase. -Levers off (Phase 36, snapshot 2026-09-09): 20,646 register pins and 12,979 asm statements remain in 12,501 functions (1,728 distinct bodies), 33,625 of them marked `// !FAKE:`; 1,722 volatile qualifiers and 50 bare `register` keywords are censused; 6,891 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded. +Levers off (Phase 36, snapshot 2026-09-11): 2,141 register pins and 1,869 asm statements remain in 1,980 functions (674 distinct bodies), 4,010 of them marked `// !FAKE:`; 1,589 volatile qualifiers and 50 bare `register` keywords are censused; 6,447 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded. _Generated by `tools/progress.py --readme` from `docs/progress.json` — numbers are never typed by hand._ diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index c9cda0dcd..25a4a9c74 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -7,7 +7,7 @@ FLEET fn-count byte-ident: 363680 / 363680 = 100.00% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 13492113 / 13492113 = 100.0% (shipped .text across main + resident + 216 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 5820205 / 5820205 = 100.0% (90984/90984 unique fns; the DISTINCT-RE number) -MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-09-09; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail) +MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-09-11; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail) (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13446963 / 13446963 = 100.0%) FLEET REAL substantive : 350533 (of which dedup-shared 251903 via 3173 groups / 262573 instances) diff --git a/docs/progress.json b/docs/progress.json index 4034ff50e..d6c135381 100644 --- a/docs/progress.json +++ b/docs/progress.json @@ -49,18 +49,18 @@ "deferred_same_address_texts": 381, "deferred_same_address_copies": 1668, "levers": { - "date": "2026-09-09", + "date": "2026-09-11", "what": "compiler-forcing constructs left in the C: register pins + asm statements (the classes Phase 36 drives to 0; GTE coprocessor ops and whole-body hand-asm routines excluded), with the volatile/register qualifiers censused", - "sites": 33625, - "pins": 20646, - "asm_statements": 12979, - "bodies": 12501, - "distinct_bodies": 1728, - "marked_fake": 33625, + "sites": 4010, + "pins": 2141, + "asm_statements": 1869, + "bodies": 1980, + "distinct_bodies": 674, + "marked_fake": 4010, "unmarked": 0, - "volatile_sites": 1722, + "volatile_sites": 1589, "register_keyword_sites": 50, - "gte_sites": 6891, + "gte_sites": 6447, "hand_asm_routines_in_c_shells": 22, "hand_asm_routine_sites": 2682 } diff --git a/docs/story-timeline.md b/docs/story-timeline.md index af8687eaa..30d8ce8ff 100644 --- a/docs/story-timeline.md +++ b/docs/story-timeline.md @@ -90,6 +90,6 @@ | 2026-09-06 | 36 | P32 (v1.31.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 | | 2026-09-07 | 61 | P33 (v1.32.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | | 2026-09-08 | 76 | P33.5 (v1.32.1), P34 (v2.0.0), P35 (v2.1.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | -| 2026-09-09 | 26 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | +| 2026-09-09 | 64 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | 75 dated rows · phase ticks from the 36 PhaseEnds · the chart: `docs/story-timeline.svg`. diff --git a/docs/wiki/Reference-index.md b/docs/wiki/Reference-index.md index ac4097091..d57d2c6ef 100644 --- a/docs/wiki/Reference-index.md +++ b/docs/wiki/Reference-index.md @@ -39,6 +39,9 @@ in the Archive index, not here. The conventions behind this page: [Docs and scra | [`gcc-2.7.2-map/`](../gcc-2.7.2-map/) | The codegen map of the pinned compiler by pass (scheduling, register allocation, loop, CSE/expression), with a citation audit; its README is the catalogue. | Start at the README's pass → residual → lever table. | authored; `tools/gccmap_cites.py --check` in tools-health | | [`wave-playbook.md`](../wave-playbook.md) | The matching-campaign procedure: draw, cards, packs, draft, gate, harvest, checkpoint — each guard paired with the measurement that produced it. | By numbered step; the S80 addenda for the one-agent-per-function shape. | authored | | [`levers.md`](../levers.md) | The register pins and compiler hints: the taxonomy, the generated count over time (the post-100% chart's data), how they got in, how each rung takes them out, and the argument on whether to refuse them from the first bank or clean them up at the end. | Read whole; §2's tables are generated. | authored + a generated block (`tools/lever_progress.py`), the series in `lever-progress.tsv` | +| [`lever-progress.tsv`](../lever-progress.tsv) | The lever series' data: one row per milestone (date, task, HEAD, sites by class, marked/unmarked, GTE variants, per-TU asm macros) appended by `tools/lever_progress.py --snapshot` — a census is a moment and cannot be recovered later. | Read as a table; the chart source. | generated (`tools/lever_progress.py`), never edited | +| [`readability.md`](../readability.md) | The other Gen3 series beside the levers: lying call declarations (split `()` / `(void)`, how many sit in a pinned body) and raw cast dereferences against struct member reads — the struct debt the structs phase inherits. | Read whole; the block is generated. | authored + a generated block (`tools/readability_progress.py`), the series in `readability-progress.tsv` | +| [`readability-progress.tsv`](../readability-progress.tsv) | The readability series' data: one dated row per snapshot with its commit (declarations, pinned-body declarations, raw casts, struct member reads). | Read as a table. | generated (`tools/readability_progress.py`), never edited | | [`accelerators.md`](../accelerators.md) | What was learned late that a future project should know on day one: each entry with when it was found, when it could have been, what it would have saved. | Read whole; the entries are short. | authored | | [`generic-decomp-package.md`](../generic-decomp-package.md) | The thesis for the next project: what it inherits and does before cracking — the knowledge base seeded from the compiler's source and sibling projects, the structural tooling, the similarity join as a band not a point, the differential-oracle harness, the widening review. | Read whole. | authored | | [`decision-log.md`](../decision-log.md) | Every strategic pivot with its context, what failed, the measurement and the hindsight (R31). 280 KB, append-only. | By date heading. | authored |