Commit Graph

27 Commits

Author SHA1 Message Date
Drew T 82009d8452 T6.c1: Conform func_800D20C0/func_8012C098 declarations to the definition prototype 2026-09-30 18:27:31 -06:00
Drew T b0b9c4c465 T5.1.c2b: lift_types --census: batch md moved (297 groups, 359 defs) 2026-09-30 10:37:58 -06:00
Drew T 6869f8f26d T5.1.c2: lift_types --census: rename pass, one text per name (17 renames, 68 defs) 2026-09-30 10:08:14 -06:00
Drew T e5ba087390 T5.c2: variants - rename 543 divergent-layout defs to <Name>_<suffix> (scope-aware) 2026-09-30 00:21:07 -06:00
Drew T 22915a6972 src(phase-37): T4 batch t4_D58 — restruct: batch t4_D58 rung D — 145 files (TUs; 145 drawable) · 50 declaration units: 14 canonical / 0 promoted / 36 K&R marked / 0 aliases typed / 0 __builtin_abs → abs / 36 kept · compiles 128 in 131 s wall · final 145/145 identical · written 32 files | R22 check-all: 218 passed, 0 failed of 218 | (census skipped) (restruct_cycle) 2026-09-12 21:50:43 -06:00
Drew T f5c7c18097 src(phase-37): T4 batch t4_D44 — restruct: batch t4_D44 rung D — 300 files (TUs; 1185 drawable) · 418 declaration units: 372 canonical / 0 promoted / 12 K&R marked / 0 aliases typed / 0 __builtin_abs → abs / 46 kept · compiles 660 in 118 s wall · final 300/300 identical · written 269 files | R22 check-all: 218 passed, 0 failed of 218 | (census skipped) (restruct_cycle) 2026-09-12 19:50:13 -06:00
Drew T 0695fb78c6 src(phase-37): T4 batch t4_D35 — restruct: batch t4_D35 rung D — 300 files (TUs; 1099 drawable) · 168 declaration units: 81 canonical / 0 promoted / 13 K&R marked / 1 aliases typed / 4 __builtin_abs → abs / 82 kept · compiles 189 in 173 s wall · final 300/300 identical · written 27 files | R22 check-all: 218 passed, 0 failed of 218 | (census skipped) (restruct_cycle) 2026-09-12 16:53:33 -06:00
Drew T cb2fb5e6db src(phase-36): T4 batch tus10 — delever: batch tus10 — 83 files (TUs; 83 drawable) · 362 bodies: 99 lever-free, 258 residue, 2 refused · sites removed 411 / needed 483 / refused 37 / deferred 3 · replays 4 (0 disagreed) · compiles 1171 in 25 s wall · final 83/83 identical · written 83 files | R22 check-all: 218 passed, 0 failed of 218 | census: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 34,100 sites in 12,570 bodies (1,823 distinct) · marked !FAKE 32,973 · UNMARKED 1,127 (delever_cycle) 2026-09-09 04:18:13 -06:00
Drew T 9aaa08391e src(phase-35): T5 bucket new batch 1 — 120 same-address classes given one source (120 headers under src/shared/ov/, 1,482 private copies in 535 TUs replaced by the include, 120 registry groups appended), 165/165 binaries green per binary; 1 class rejected (a body relying on a file-scope extern outside its definition), ledgered 2026-09-08 19:46:25 -06:00
Drew T 27cc083de9 feat(decomp): parallel gate — 5 fns across 5 binaries (12 workers)
md_MAIN_028    func_800CB8A0
  md_MAIN_003    func_800D24D0
  ov_SC01_006    func_8017F9F8
  ov_SC07_000    func_8017F69C
  ov_SC07_002    func_8017FCA8
2026-09-02 01:31:10 -06:00
Drew T 838d7cea34 feat(decomp): parallel gate — 179 fns across 102 binaries (10 workers)
md_MAIN_037    func_800CAF4C
  md_MAIN_028    func_800CAE0C
  md_MAIN_015    func_800CAEC0
  md_MAIN_029    func_800CAEE0
  md_MAIN_013    func_800CAF68 func_800CB6E4
  md_MAIN_020    func_800CAF18 func_800CB034
  md_MAIN_001    func_800CEF04
  md_MAIN_033    func_800CAE0C
  md_MAIN_023    func_800CAEC0
  md_MAIN_003    func_800D06BC
  md_MAIN_043    func_800CD1F4
  md_MAIN_041    func_800CAEC0 func_800CAF08
  md_MAIN_038    func_800CAE0C func_800CAED0
  md_MAIN_047    func_800CCB28
  md_MAIN_046    func_800CCB28
  md_SC03_073    func_801EFBC0
  md_MAIN_040    func_800CAED0
  md_SC03_075    func_801EFBC0
  md_SC03_132    func_801E2D50
  md_SC04_025    func_801E855C
  md_SC04_029    func_801E8440
  md_SC03_137    func_801E2ED8
  md_SC04_026    func_801E82C0
  md_SC05_023    func_801EDEAC func_801EE148
  md_SC05_024    func_801EDEAC func_801EE3E4
  md_SC03_133    func_801E2FF4
  md_SC05_025    func_801EDEAC func_801EE148
  md_SC05_028    func_801EE2C8
  ov_MAIN_012    func_8016829C
  ov_SC01_001    func_80180890
  ov_SC01_074    func_8017D918
  ov_SC01_077    func_80184A68
  ov_SC01_084    func_8017E224 func_8017E890 func_8017E94C
  ov_SC01_009    func_8017FE10
  ov_SC02_026    func_8017D948
  ov_SC02_004    func_8017D8B0
  ov_SC02_031    func_8017F400 func_801829F8
  ov_SC02_035    func_8017D598
  ov_SC02_021    func_8017DC10 func_8017F264
  ov_SC02_017    func_8017FCB8 func_8018287C func_80183940
  ov_SC02_027    func_8017F498
  ov_SC02_011    func_80182380
  ov_SC02_005    func_8017E014 func_8017FDB4 func_801800CC func_80180328 func_801803BC func_80180454 func_80180B90 func_8018112C func_8018118C func_80181388 func_8018141C func_80182098 func_801849E4 func_80185858 func_8018655C func_801880AC func_801886C4 func_8018B5E0 func_8018D574
  ov_SC03_001    func_8017EFD4 func_8017F258 func_80180E68 func_8018166C func_8018247C func_80184A1C func_80186A04
  ov_SC03_012    func_8017DCB4
  ov_SC03_011    func_8017E170
  ov_SC03_014    func_8017BFA0
  ov_SC03_002    func_801813E4
  ov_SC03_024    func_8017BFA0 func_8017DA98 func_80180230 func_80180660 func_801806D4 func_80180748 func_801807AC func_801809F8 func_801817A8 func_80184814 func_80184884 func_80184940
  ov_SC03_007    func_8017E6C0
  ov_SC03_028    func_80185344
  ov_SC03_010    func_8017E69C
  ov_SC03_030    func_8017EEE0
  ov_SC03_091    func_801822CC
  ov_SC03_089    func_80181474
  ov_SC03_093    func_8017F8D8
  ov_SC03_096    func_8017F444
  ov_SC03_097    func_8017EE04 func_8017EF54 func_8017FDBC
  ov_SC03_029    func_80182E84 func_80183E70
  ov_SC03_090    func_801814B4
  ov_SC03_092    func_8017F29C
  ov_SC03_105    func_8017FEA8
  ov_SC03_111    func_8018093C func_80181178
  ov_SC03_116    func_801819F4
  ov_SC03_112    func_8017E9A0 func_80181D08
  ov_SC03_110    func_8017F234
  ov_SC03_114    func_8017CFC0 func_8017DDA0
  ov_SC03_117    func_8017E99C
  ov_SC03_121    func_8017CE3C
  ov_SC03_118    func_8017DA98
  ov_SC03_124    func_8017FB04 func_80180D48 func_80182488
  ov_SC03_125
2026-08-30 09:50:49 -06:00
Drew T dd11127284 feat(t5): Claude wave t5s — 24 banked (sonnet 22/25, opus 2/4, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) 2026-08-29 12:53:28 -06:00
Drew T d9a30167dd feat(t5): Claude wave t5r — 30 banked (sonnet 22/37, opus 8/11, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5) 2026-08-29 11:35:54 -06:00
Drew T 4fc7eb6555 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59).
2026-08-25 17:49:27 -06:00
Drew T eebe792a0b feat(decomp): ox wave eh overlays — 129 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 17:10:42 -06:00
Drew T f9e5b1d865 feat(decomp): ox wave dt overlays — 9 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 14:22:29 -06:00
Drew T 7e1f554a05 feat(decomp): ox wave df overlays — 124 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:27:56 -06:00
Drew T 5357c8b448 feat(decomp): ox wave de overlays — 192 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:17:00 -06:00
Drew T 27a9c118ef feat(decomp): ox wave dd overlays — 217 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 11:00:28 -06:00
Drew T ba2833739a feat(decomp): ox wave cc overlays — 18 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 23:36:29 -06:00
Drew T 88da1eb03b feat(decomp): A-prop lane S59 sweep 2 — 12 banked of 33 recovered drafts, zero model tokens
Two new recovery mechanisms, both byte-proven this sweep:
  6/7  rtu-second-chance: standalone COMPILE-FAILs re-judged in their REAL TU
       (rtu_match) — 6 banked whole-binary; the standalone verdict was the
       wrong oracle for a TU-destined draft
  6/15 reloc UNRESOLVED/shape-MATCH: identity unverifiable locally, but the
       whole-binary gate is the arbiter — staging them is free banks
Not banked: 5 MISMATCH?-advisory, 4 reloc-repaired (symbols now right, bytes
still differ), 2 old K&R conversions, 9 UNRESOLVED, 1 rtu (all reverted by the
gate; drafts retained in backlog).
2026-08-24 22:52:27 -06:00
Drew T 5be231d446 feat(decomp): ox wave bu overlays — 42 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 18:02:49 -06:00
Drew T 561e985c75 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-14 14:04:54 -06:00
Drew T e6e806aebd feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.2%) 2026-08-14 01:40:54 -06:00
Drew T fd80bd7007 feat(phase-30 S47-0a.1): the symbol-KIND fix banks 205 members; the residue crosses over to DIFF
Stage 0a's first defect, and the largest single zero-token bank of the session.

family_remap's kind test asked ONE question — is this address a function in the SIBLING'S OWN sig?
— and defaulted to `D_` on "no". But a body calls outside its image constantly: an overlay calls
resident helpers, an md_* module calls the overlay-range engine. Those addresses are absent from
the sibling's sig, so the test fell through and emitted a DATA NAME FOR A FUNCTION —
`D_800183E0`, `D_800D1EBC`, `D_80171A1C`. None exist anywhere in src/ or config/symbols.us.txt,
while `func_80171A1C` alone has 1,061 references. Measured: 611 member-rows across 45 symbols,
the largest named residue class. "Not in MY sig" means "not mine", not "is data".

Fix — three oracles, strongest first, never a blanket fallback:
 1. the sibling's own sig (authoritative for its image; this is what preserves the Phase-29 T82
    case where a slot is a function in the exemplar and DATA in the member — unioning every sig
    would have re-broken the 251 members T82 fixed),
 2. the always-linked images via extern_fn_addrs() — resident + main, 2,146 addresses whose ranges
    cannot collide with an overlay's,
 3. the exemplar reached it by `jal` — a call target is a function BY DEFINITION, which covers an
    external address neither sig claims (0x80171A1C from an md_* module, 112 rows).
Only a non-call reloc no oracle claims still falls to `D_`.

Result: BANKED 205 member-matches, failures 670 -> 575, derived net = report = 205.
R22 clean-fleet 213 passed / 0 failed of 213.
Fleet 94.4% instr / 88.3% distinct / 96.27 -> 96.33% fn-count; stubs 13,563 -> 13,345.

THE RESIDUE HAS CROSSED OVER: DIFF is now the LARGEST class at 143 of 575 — real byte divergence
outranks plumbing for the first time this session (undefined-ref 611 -> ~8, PLUMBING-other
231 -> 81). The ~5:1 plumbing:DIFF ratio that justified "tooling beats volume" has inverted in this
queue, exactly as the frontier analysis predicted: the declaration-axis vein was one-time.
The new head class is `conflicting types for func_80175414` (27) — the same addresses this fix
started naming correctly, now surfacing the NEXT layer (the symbol resolves; its declared signature
disagrees). That is the conform axis, not the remap axis.

Note for anyone auditing this class: rtu_match MASKS HI16/LO16, so a wrong %hi/%lo symbol still
reports MATCH (the T82 comment records `MATCH (10 ins)` on a member the fleet gate refused). This
defect is invisible to the per-function tool by construction — only the whole-binary gate sees it.
2026-08-11 14:02:38 -06:00
Drew T 4cadac4e11 feat(phase-30 S45 II.1c): module batch dedup-banked + verified — 408 banks, R22 183/183, audit-disc 75->34 (parked-only)
- dedup measure (R37 probe): 69/1,113 module fns h_exact-match matched corpus (~6%, LOW as
  planned — modules are novel frontier); dedup_extend inapplicable (same-vram group model) ->
  family_sweep --hseq --band all over the 57 matched-exemplar families: 408 member-matches
  banked (182 into modules, 226 into the big 3 — families Part I's --only scoping missed),
  169 failed + 77 STRUCT = genuine per-member frontier
- R22 clean-fleet 183/183 BYTE-IDENTICAL; audit-disc UNCLAIMED 75->34 residue 0 (34 = 31
  parked-for-L3 + SC03/53,54,56 — 3 rows Discovery-3 never tiered, now parked with evidence)
- three instrument fixes, each negative-control-proven:
  - family_sweep --hseq stub map derives ov_*+md_*+resident (was sig.ov_* glob -> module
    members silently 'not-stub', R32 class) [committed earlier as commit:1506]
  - sig-modules seeds from the built ELF's func_* symbols (bootstrap GLUES adjacent fns
    around jtbl dispatch -> 24 false TRUNCATED; perturbed-sig control still bites)
  - corpus.audit counts CODE lines only (module .s carries its header jtbl as .word lines);
    progress.py buckets INCLUDE_RODATA symbols as blobs (unbucketed R32 hole)
- NEW HONEST BASELINE (183 binaries): 94.0% instr / 95.96% fn-count / 87.6% distinct;
  tools-health OK, audit-digest OK
2026-08-06 13:14:03 -06:00
Drew T 85b526cddd feat(phase-30 S45 II.1a): all 38 MAIN modules onboarded byte-identical at the §S44 static addresses
- slot A 29/29 (md_MAIN_013..041 @ 0x800CAE08), slot B 6/6 (md_MAIN_042..047 @ 0x800CCB1C),
  boot trio 3/3 (md_MAIN_001 [=MAIN/0 twin], md_MAIN_008, md_MAIN_011 @ 0x800CEDF8) — every one
  BYTE-IDENTICAL on its FIRST build (byte-corroborating the §S44 loader table for slots A/B/boot)
- TLO roster derived from the §154 id-word law (.run/s45/derive_tlo.py): 0x4 default;
  011=0x7C, 025=0xC, 034=0x80, 039=0xC (first-prologue scan)
- new_binary.sh: module hdr carve is now a dot-typed .rodata PAIRED with the c segment —
  a header can hold a function's jump table (md_MAIN_034), and standalone rodata emits
  .L locals that don't cross objects; bin links in the data block (both refuted by bytes)
- A4 law: symbols.resident.txt dropped from the boot trio's stacks (windows inside the
  resident region; DsMix @0x800D1BD8 had minted a phantom fn boundary in md_MAIN_011) —
  re-extracted clean, all three byte-identical, phantom gone
2026-08-06 12:36:49 -06:00