Files
BFM-decomp/docs/family-hseq.md
T
Drew T f2696653ef feat(phase-30 S39/S4): 4 wave-6 drafts bank UNCHANGED — the block was our tooling, not the code (+1,905 ins)
The 6 still-open wave-6 drafts were triaged against S38's own diagnosis table; 4 banked,
R22 clean-fleet 140/140.

  func_801919A0  ov_SC06_032  710 ins   (was: undefined ref func_8018B878 -- "alias class")
  func_80189030  ov_SC03_001  557 ins   (was: undefined ref func_80186F88 -- "alias class")
  func_801878E8  ov_SC04_018  513 ins   (was: undefined ref func_801848DC -- "alias class")
  func_8018A564  ov_SC02_027  125 ins   (was: CC1-FAIL Error 33)

THE FINDING: all four banked with NO change to the drafts. S38 recorded them blocked on a
class that needed cracking ("cracking this one class frees 6 drafts at once"); they had
ALREADY been freed by S38's own tool repairs -- the jr_isolate_all/overlay_src_split
alias-DEFINITION-deletion blindness and harvest_verify._reload_corpus. The drafts were
correct all along; the instruments were failing them. That is the FIFTH recorded "wall"
this phase to resolve to our own tooling.

  => RE-GATE STORED DRAFTS AFTER ANY TOOL REPAIR before treating a stored verdict as a
     fact about the code. A verdict is only as current as the instrument that produced it
     (R35 applied to the backlog, not just to metrics).

Each bank also performed a jtbl carve, so config/ changed => fleet blast radius => full R22
(clean + extract-all + check-all) = 140 passed, 0 failed of 140.

Metrics move exactly as the model predicts: instr 12406172 -> 12408077 = +1,905, the exact
sum of the four (710+557+513+125); distinct +1,905 / +4 unique fns; fn-count +4.
audit-digest OK. 0 NON_MATCHING (G4).

LEFT ON THE BACKLOG as genuine codegen residuals, not forced (P9):
  func_8017C974 (ov_SC01_077, 947 ins, close=47, REGALLOC-PERM, 12 permuter variants inert)
  func_80188C68 (ov_SC03_124, 551 ins, close=370, the only target with no twin anywhere)

NEXT: the func_801878E8 family (4 open siblings x 513 ~= +2,052). family_sweep --hseq
correctly REFUSED it via the §53 interlock (has_mid_jr => jtbl carve route; "a 0% from this
path would be a TOOL artifact, not a wall"), and jtbl_family_bank.py requires a clean tree
because it reverts from HEAD per sibling -- which is why this commit lands first.
2026-08-04 22:10:49 -06:00

5.6 KiB
Raw Blame History

Phase 26 — h_seq family survey (T1)

Generated by tools/family_hseq.py from the 138 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.

Scope: the 138 OVERLAYS only (no main, no resident) · generated at HEAD commit:1431 · stub set derived from corpus.stubs — the same oracle progress.py counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.

Fleet (overlays): 96.7% fn / 94.9% instr / 90.2% distinct-code matched. Unmatched: 11,472 instances / 672,283 ins (9,489 distinct classes).

Tail cross-check (Phase-25 close): 7,374 tail fns / 372,874 ins → 423 h_seq families ≥2, 102 substantial (nins≥80) / 68,560 ins.

Full frontier (all unmatched by h_seq): 1992 target families (≥2 members or a matched sibling) + 3767 singletons (Step-D residue). Substantial: 348 families / 223,136 templatable ins, 24 with a matched sibling (zero-crack). Substantial member classes: 1,401 PURE · 23 IMM · 6 STRUCT-excluded.

Top substantial families (by templatable byte-weight)

# nins members (P/I/S) #addr/#ov tag class matched jr exemplar templ. ins
1 198 138 (138/0/0) 1/138 per-location PURE 0 · 0x801412a8 draft-ov077 27,324
2 165 138 (138/0/0) 1/138 per-location PURE 0 · 0x80178004 draft-ov077 22,770
3 947 16 (16/0/0) 6/16 cross-address PURE 0 Y 0x8017c974 draft-ov077 15,152
4 246 16 (16/0/0) 6/16 cross-address PURE 0 · 0x8017c294 draft-ov077 3,936
5 611 5 (5/0/0) 4/5 cross-address PURE 0 · 0x80186e24 modal 3,055
6 551 5 (5/0/0) 4/5 cross-address PURE 0 Y 0x80189540 modal 2,755
7 125 21 (21/0/0) 21/21 scattered PURE 1 Y 0x8018a564 matched 2,625
8 557 4 (4/0/0) 3/4 cross-address PURE 1 Y 0x80189030 matched 2,228
9 513 4 (4/0/0) 4/4 cross-address PURE 1 Y 0x801878e8 matched 2,052
10 137 14 (14/0/0) 14/14 scattered PURE 1 Y 0x801884d8 matched 1,918
11 281 6 (6/0/0) 6/6 cross-address PURE 0 Y 0x80186270 modal 1,686
12 470 3 (3/0/0) 3/3 cross-address PURE 0 Y 0x80191320 modal 1,410
13 279 5 (5/0/0) 4/5 cross-address PURE 0 Y 0x8017f2d4 modal 1,395
14 673 2 (2/0/0) 2/2 cross-address PURE 1 Y 0x8019059c matched 1,346
15 263 5 (5/0/0) 5/5 cross-address PURE 6 · 0x80182fd4 matched 1,315
16 254 5 (5/0/0) 4/5 cross-address PURE 0 Y 0x80188e1c modal 1,270
17 251 5 (5/0/0) 5/5 cross-address PURE 1 Y 0x80180b04 matched 1,255
18 198 6 (6/0/0) 6/6 cross-address PURE 0 Y 0x80185f58 modal 1,188
19 385 3 (3/0/0) 3/3 cross-address PURE 0 Y 0x8018ff98 modal 1,155
20 185 6 (6/0/0) 6/6 cross-address PURE 0 Y 0x80187aec modal 1,110
21 324 3 (3/0/0) 2/3 cross-address PURE 0 Y 0x80183324 draft-ov077 972
22 95 10 (10/0/0) 9/10 scattered PURE 0 Y 0x80185d70 modal 950
23 231 4 (4/0/0) 4/4 cross-address PURE 0 Y 0x8017f83c modal 924
24 288 3 (3/0/0) 3/3 cross-address PURE 3 Y 0x80184c74 matched 864
25 166 5 (5/0/0) 4/5 cross-address PURE 0 Y 0x80188b84 modal 830
26 165 5 (5/0/0) 5/5 cross-address PURE 0 Y 0x801818f0 modal 825
27 406 2 (2/0/0) 2/2 cross-address PURE 0 Y 0x80184938 modal 812
28 196 4 (4/0/0) 4/4 cross-address PURE 0 Y 0x8017ffd0 modal 784
29 257 3 (3/0/0) 3/3 cross-address PURE 0 · 0x80192b60 modal 771
30 85 9 (9/0/0) 9/9 scattered PURE 0 · 0x801822e0 modal 765
31 255 3 (3/0/0) 3/3 cross-address PURE 0 · 0x8018e9bc modal 765
32 254 3 (3/0/0) 3/3 cross-address PURE 0 · 0x80192768 modal 762
33 188 4 (4/0/0) 1/4 per-location PURE 134 Y 0x8016ab6c matched-ov077 752
34 125 6 (6/0/0) 6/6 cross-address PURE 0 · 0x80189a34 modal 750
35 107 7 (7/0/0) 7/7 cross-address PURE 0 · 0x8017ef54 modal 749
36 187 4 (4/0/0) 1/4 per-location PURE 134 · 0x8013dd68 matched-ov077 748
37 186 4 (4/0/0) 4/4 cross-address PURE 0 · 0x8017ec98 modal 744
38 124 6 (6/0/0) 6/6 cross-address PURE 0 · 0x80188e10 modal 744
39 248 3 (3/0/0) 3/3 cross-address PURE 0 · 0x8018e5dc modal 744
40 186 4 (4/0/0) 4/1 cross-address PURE 0 · 0x801802ec modal 744
41 147 5 (5/0/0) 4/5 cross-address PURE 0 Y 0x8017ed5c modal 735
42 181 4 (4/0/0) 4/4 cross-address PURE 0 · 0x8017d7c0 modal 724
43 144 5 (5/0/0) 4/5 cross-address PURE 0 · 0x80188778 modal 720
44 710 1 (1/0/0) 1/1 per-location PURE 2 Y 0x80191c50 matched 710
45 173 4 (4/0/0) 4/4 cross-address PURE 0 · 0x801851a8 modal 692
46 171 4 (4/0/0) 4/4 cross-address PURE 0 · 0x80183fe0 modal 684
47 341 2 (2/0/0) 1/2 per-location PURE 0 · 0x80184bd8 modal 682
48 85 8 (8/0/0) 8/8 cross-address PURE 0 · 0x80182b90 modal 680
49 113 6 (6/0/0) 6/6 cross-address PURE 0 · 0x80187320 modal 678
50 226 3 (3/0/0) 3/3 cross-address PURE 0 · 0x80192f64 modal 678