Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 1ab9905368 feat(phase-26): §8d scope_data_externs — the ×133 sweep blocker fixed; func_8015AE2C banked ×134
- ROOT CAUSE (R14 — the session-7 diagnosis was half right): the isolated region builds [ OK ]
  WITHOUT the body, so §8b isolation was never implicated. `family_remap.gather_externs` prepends
  carried decls at FILE scope; D_801812A4 is a fn-ptr dispatch table the sibling declares FOUR
  incompatible ways at BLOCK scope inside its own later functions, so the carried file-scope decl
  ESTABLISHES A GLOBAL THE TU NEVER HAD and every later block-scope extern must now agree with it.
  Byte-proven asymmetry: BLOCK(int)->BLOCK(struct*)->FILE(void*) builds; FILE(void*)->BLOCK(int)
  errors. It was the ONLY hard error in the build — all 27 carried function externs were fine raw.

- THE FIX (demote, don't reconcile): tools/scope_data_externs.py emits a carried D_ extern at BLOCK
  scope inside the function body when the TU has no file-scope decl of it above the insertion point.
  Byte-neutral (an extern emits no code; type + access opcodes unchanged) and never worse than raw,
  so it needs no oracle, no type comparator, no fn-ptr parser. Restores fidelity — the original
  declares these symbols at block scope in exactly this way. Wired into jtbl_family_bank as the
  `scoped` stage: raw -> scoped -> recovered -> reconciled (scoped is the base for the later stages).

- reconcile_decls is the WRONG instrument for this class, twice: its oracle answers "what does the
  FLEET call this symbol" when the question is "what can THIS TU see", and its DATA_DECL_LINE_RE
  cannot parse `extern void (*D_x[])(void *);` — silently skipping the very symbols that were
  failing (the phase's third silent-skip bug, after find_site braces + overlay_files splits).

- R17 TRIAGE RULE, first real test, held: `conflicting types` = the compiler REFUSED TO COMPILE =
  a C front-end diagnostic = our Python. Reading cse.c/global.c would have taught nothing.

- RESULT: func_8015AE2C (562 ins, reach 134) swept 133/133 siblings, 0 failures. R22 clean-fleet
  136/136 BYTE-IDENTICAL (534 changed src files); dedup-check 1813 validated / 0 failed; 0
  NON_MATCHING (G4). instr-weighted 63.0 -> 63.6%; distinct-code 39.1 -> 40.5% (+256 unique fns /
  +79,957 ins) — one core, ~0 agent tokens.

- knowledge captured during the producing session (R30/R31/R21): cookbook §8d, decision-log
  2026-07-13 session 8, SETUP tool-inventory row; CURRENT_PHASE session-8 checkpoint.
2026-07-13 20:45:15 -06:00

8.6 KiB
Raw Blame History

BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)

136 binaries: main + resident + 134 location overlays. DETERMINISTIC,

source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: make check-all;

cross-binary collapsible-byte leverage: docs/duplicates.cross.md.

THREE progress metrics (all matter — see the labels):

FLEET fn-count byte-ident: 283062 / 343904 = 82.31% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 8079400 / 12707182 = 63.6% (shipped .text across resident+134 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 2191904 / 5410077 = 40.5% (50954/84996 unique fns; the DISTINCT-RE number; main EXE not sig'd)

FLEET REAL substantive : 281533 (of which dedup-shared 223275 via 1813 groups / 223725 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 60835 FLEET matchable : 343904

binary REAL shared LINKED byte-ident matchable byte-ident %
main 54 2 959 1055 2096 50.3%
resident 123 0 0 125 146 85.6%
ov_SC01_000 2073 1669 0 2073 2404 86.2%
ov_SC01_001 2078 1669 0 2080 2468 84.3%
ov_SC01_004 2070 1660 0 2071 2415 85.8%
ov_SC01_005 2096 1682 0 2096 2505 83.7%
ov_SC01_006 2096 1682 0 2096 2505 83.7%
ov_SC01_008 2069 1660 0 2071 2427 85.3%
ov_SC01_009 2090 1661 0 2091 2509 83.3%
ov_SC01_074 2074 1661 0 2076 2426 85.6%
ov_SC01_077 2311 1624 0 2313 2583 89.5%
ov_SC01_080 2106 1664 0 2106 2514 83.8%
ov_SC01_084 2113 1664 0 2118 2580 82.1%
ov_SC02_000 2159 1699 0 2159 2685 80.4%
ov_SC02_003 2159 1699 0 2159 2685 80.4%
ov_SC02_004 2075 1664 0 2075 2402 86.4%
ov_SC02_005 2176 1660 0 2186 2929 74.6%
ov_SC02_011 2181 1667 0 2192 2895 75.7%
ov_SC02_015 2080 1666 0 2080 2415 86.1%
ov_SC02_016 2105 1666 0 2108 2547 82.8%
ov_SC02_017 2148 1666 0 2156 2734 78.9%
ov_SC02_021 2086 1666 0 2086 2438 85.6%
ov_SC02_026 2095 1664 0 2101 2574 81.6%
ov_SC02_027 2120 1664 0 2129 2694 79.0%
ov_SC02_028 2121 1664 0 2131 2703 78.8%
ov_SC02_031 2109 1665 0 2114 2564 82.4%
ov_SC02_035 2086 1664 0 2089 2522 82.8%
ov_SC02_039 2070 1664 0 2070 2417 85.6%
ov_SC02_041 2097 1664 0 2100 2562 82.0%
ov_SC03_001 2202 1665 0 2219 2871 77.3%
ov_SC03_002 2132 1669 0 2147 2633 81.5%
ov_SC03_003 2075 1664 0 2076 2424 85.6%
ov_SC03_006 2142 1670 0 2151 2769 77.7%
ov_SC03_007 2122 1664 0 2126 2625 81.0%
ov_SC03_010 2085 1664 0 2085 2471 84.4%
ov_SC03_011 2090 1664 0 2096 2529 82.9%
ov_SC03_012 2069 1664 0 2070 2407 86.0%
ov_SC03_013 2086 1664 0 2086 2494 83.6%
ov_SC03_014 2134 1689 0 2134 2687 79.4%
ov_SC03_015 2137 1689 0 2137 2687 79.5%
ov_SC03_023 2075 1664 0 2076 2436 85.2%
ov_SC03_024 2129 1669 0 2136 2643 80.8%
ov_SC03_028 2112 1664 0 2116 2666 79.4%
ov_SC03_029 2113 1666 0 2123 2646 80.2%
ov_SC03_030 2092 1668 0 2094 2497 83.9%
ov_SC03_031 2086 1664 0 2090 2516 83.1%
ov_SC03_089 2103 1664 0 2110 2583 81.7%
ov_SC03_090 2105 1664 0 2113 2627 80.4%
ov_SC03_091 2106 1664 0 2114 2642 80.0%
ov_SC03_092 2112 1664 0 2124 2589 82.0%
ov_SC03_093 2093 1664 0 2097 2565 81.8%
ov_SC03_094 2088 1664 0 2094 2578 81.2%
ov_SC03_095 2079 1664 0 2082 2476 84.1%
ov_SC03_096 2079 1664 0 2082 2467 84.4%
ov_SC03_097 2102 1664 0 2109 2605 81.0%
ov_SC03_098 2086 1664 0 2089 2543 82.1%
ov_SC03_099 2080 1664 0 2083 2506 83.1%
ov_SC03_100 2087 1664 0 2091 2541 82.3%
ov_SC03_101 2088 1664 0 2092 2530 82.7%
ov_SC03_102 2083 1664 0 2086 2494 83.6%
ov_SC03_103 2087 1666 0 2090 2512 83.2%
ov_SC03_104 2106 1664 0 2113 2618 80.7%
ov_SC03_105 2100 1664 0 2107 2599 81.1%
ov_SC03_108 2072 1664 0 2072 2445 84.7%
ov_SC03_109 2073 1664 0 2075 2425 85.6%
ov_SC03_110 2078 1664 0 2078 2470 84.1%
ov_SC03_111 2086 1664 0 2089 2512 83.2%
ov_SC03_112 2084 1666 0 2086 2528 82.5%
ov_SC03_113 2078 1666 0 2081 2470 84.3%
ov_SC03_114 2068 1664 0 2070 2416 85.7%
ov_SC03_115 2082 1664 0 2084 2474 84.2%
ov_SC03_116 2076 1664 0 2079 2440 85.2%
ov_SC03_117 2094 1664 0 2100 2559 82.1%
ov_SC03_118 2137 1688 0 2138 2687 79.6%
ov_SC03_119 2134 1688 0 2135 2687 79.5%
ov_SC03_121 2079 1664 0 2082 2461 84.6%
ov_SC03_124 2151 1660 0 2171 2743 79.1%
ov_SC03_125 2114 1664 0 2126 2590 82.1%
ov_SC03_126 2076 1666 0 2076 2424 85.6%
ov_SC04_000 2093 1668 0 2102 2548 82.5%
ov_SC04_002 2107 1664 0 2111 2638 80.0%
ov_SC04_003 2085 1664 0 2089 2504 83.4%
ov_SC04_004 2099 1664 0 2101 2560 82.1%
ov_SC04_005 2100 1664 0 2106 2614 80.6%
ov_SC04_006 2076 1664 0 2078 2455 84.6%
ov_SC04_007 2095 1664 0 2099 2571 81.6%
ov_SC04_008 2072 1664 0 2072 2416 85.8%
ov_SC04_009 2080 1664 0 2083 2442 85.3%
ov_SC04_010 2076 1664 0 2077 2420 85.8%
ov_SC04_011 2126 1664 0 2132 2805 76.0%
ov_SC04_012 2074 1664 0 2075 2421 85.7%
ov_SC04_015 2134 1665 0 2145 2613 82.1%
ov_SC04_016 2073 1664 0 2075 2441 85.0%
ov_SC04_018 2180 1699 0 2180 2859 76.3%
ov_SC04_019 2186 1699 0 2186 2859 76.5%
ov_SC04_020 2103 1664 0 2115 2569 82.3%
ov_SC04_021 2075 1666 0 2075 2424 85.6%
ov_SC05_000 2079 1668 0 2082 2423 85.9%
ov_SC05_001 2095 1664 0 2100 2576 81.5%
ov_SC05_002 2078 1664 0 2081 2444 85.1%
ov_SC05_003 2078 1664 0 2079 2483 83.7%
ov_SC05_004 2076 1664 0 2078 2466 84.3%
ov_SC05_005 2080 1664 0 2081 2493 83.5%
ov_SC05_006 2074 1664 0 2074 2431 85.3%
ov_SC05_007 2081 1664 0 2086 2484 84.0%
ov_SC05_008 2100 1664 0 2102 2545 82.6%
ov_SC05_009 2076 1664 0 2080 2439 85.3%
ov_SC05_010 2100 1664 0 2104 2590 81.2%
ov_SC05_011 2077 1664 0 2078 2410 86.2%
ov_SC05_017 2176 1661 0 2187 2844 76.9%
ov_SC05_018 2126 1664 0 2139 2675 80.0%
ov_SC05_019 2075 1666 0 2075 2424 85.6%
ov_SC06_000 2136 1673 0 2139 2693 79.4%
ov_SC06_006 2084 1664 0 2085 2513 83.0%
ov_SC06_008 2100 1666 0 2106 2543 82.8%
ov_SC06_010 2087 1664 0 2092 2519 83.0%
ov_SC06_011 2084 1664 0 2088 2470 84.5%
ov_SC06_013 2077 1664 0 2078 2426 85.7%
ov_SC06_014 2081 1664 0 2083 2454 84.9%
ov_SC06_015 2078 1664 0 2078 2422 85.8%
ov_SC06_016 2096 1664 0 2098 2551 82.2%
ov_SC06_018 2094 1667 0 2101 2667 78.8%
ov_SC06_020 2084 1666 0 2085 2520 82.7%
ov_SC06_022 2100 1664 0 2108 2644 79.7%
ov_SC06_024 2106 1664 0 2112 2669 79.1%
ov_SC06_025 2093 1664 0 2098 2574 81.5%
ov_SC06_027 2068 1664 0 2069 2409 85.9%
ov_SC06_029 2121 1664 0 2133 2664 80.1%
ov_SC06_030 2079 1664 0 2079 2458 84.6%
ov_SC06_032 2090 1665 0 2097 2660 78.8%
ov_SC06_033 2094 1665 0 2101 2633 79.8%
ov_SC07_000 2093 1668 0 2095 2523 83.0%
ov_SC07_001 2080 1664 0 2082 2456 84.8%
ov_SC07_002 2097 1664 0 2101 2581 81.4%
ov_SC07_008 2064 1664 0 2064 2387 86.5%
ov_SC07_009 2075 1664 0 2077 2431 85.4%