Files
BFM-decomp/docs/progress.fleet.md
T
Drew T c0486fe5f8 feat(phase-28 T4): dedup_extend — wire newly-onboarded binaries in; ov_SC07_006 1543/1614 (95.6%)
The 4 SC07 overlays P27 onboarded were byte-clean but NOT citizens: their .c included only
common.h (never ../shared/engine_core.h), so no shared body could reach them, and they
appeared in ZERO dedup groups (1689 groups read "134 binaries", never 138). Each sat at ~80
matched / ~2400 stubs while its siblings were ~2150 matched.

- NEW tools/dedup_extend.py — the missing mode. dedup_propagate is built for CRACK -> AUTHOR
  MACRO -> INSTANTIATE: --auto-from scans INLINE DEFS (planned only 11 here; the ~1600 shared
  bodies are ALREADY DEFINE_func_* macros in engine_core.h) and --addr dies "no source overlay
  has it matched" because no overlay holds an inline def. Extending an existing MACRO-BACKED
  group to a newly-onboarded binary is a different operation and nothing implemented it.

- SAFETY (explicit — this feeds the byte-gate): h_exact is the SHA1 of RAW INSTRUCTION BYTES, so
  two instances sharing one are identical INCLUDING their jal/lui/%lo reloc immediates — same
  callees, same data addresses, same symbols. The body that compiles byte-identically at one
  member does so at the other with NO remap. (Exactly why dup_report calls h_exact "guaranteed
  byte-match" and h_norm "candidate-only".) A bug here can only FAIL TO BANK, never falsely bank.

- REUSE, DON'T REBUILD (R33): owns only the set computation + the registry edit. The splice and
  the gate are harvest_verify verbatim (it already derives each stub's home TU from the corpus
  oracle, chunks + bisects, reverts on failure). h_exact members are byte-identical by
  construction -> the happy path is ~1 build per binary, not one per function.

- RESULT ov_SC07_006: 1543 / 1614 banked = 95.6%, ~0 agent tokens. Stubs 2374 -> 831.
  The 71 non-banks are ALL PLUMBING, ZERO DIFF, in two named classes with existing tools:
    * func_80144B9C "undefined reference" — the whale's body lives in src/shared/func_80144B9C.h
      (the -O0 shared header), not engine_core.h, so no DEFINE macro exists to expand.
    * "conflicting types for D_800A5E60 / func_8012C750 / func_8012C0EC" — the loose-typing
      conflict class (cast_call_sites / canon_sig_reconcile / reconcile_tu already exist for it).

- GATES: R22 make clean && extract-all && check-all -> 140 passed, 0 failed of 140, 0 FAIL lines.
  dedup-check 1840 validated / 0 failed; groups now read "135 members [135 binaries]" (was 134);
  C1 coverage 227211 -> 228754 = exactly +1543. The second oracle accepts the extension.

- Mechanism had been proven by hand first (probe-before-investing): +include + ONE stub ->
  DEFINE_func_80128158() -> ov_SC07_006 built 7ca772be BYTE-IDENTICAL, then reverted.
2026-07-15 23:14:19 -06:00

160 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
# 140 binaries: main + resident + 138 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: 292275 / 353723 = 82.63% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 8898477 / 13081451 = 68.0% (shipped .text across resident+138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 2757078 / 5574674 = 49.5% (53528/87459 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 60201 = 0.7% (Phase-27 T10; SEPARATE — LINKED-excluding Ghidra sig dated 2026-06-14, PROVISIONAL until a fresh/complete main sig; NOT folded into the fleet number)
FLEET REAL substantive : 290420 (of which dedup-shared 228710 via 1840 groups / 228754 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 61441
FLEET matchable : 353723
| 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 | 2123 | 1698 | 0 | 2123 | 2403 | 88.3% |
| ov_SC01_001 | 2128 | 1698 | 0 | 2130 | 2466 | 86.4% |
| ov_SC01_004 | 2120 | 1689 | 0 | 2121 | 2414 | 87.9% |
| ov_SC01_005 | 2150 | 1711 | 0 | 2150 | 2503 | 85.9% |
| ov_SC01_006 | 2150 | 1711 | 0 | 2150 | 2503 | 85.9% |
| ov_SC01_008 | 2120 | 1689 | 0 | 2122 | 2426 | 87.5% |
| ov_SC01_009 | 2144 | 1690 | 0 | 2145 | 2507 | 85.6% |
| ov_SC01_074 | 2124 | 1690 | 0 | 2126 | 2425 | 87.7% |
| ov_SC01_077 | 2360 | 1658 | 0 | 2362 | 2585 | 91.4% |
| ov_SC01_080 | 2160 | 1693 | 0 | 2160 | 2512 | 86.0% |
| ov_SC01_084 | 2169 | 1693 | 0 | 2174 | 2579 | 84.3% |
| ov_SC02_000 | 2215 | 1728 | 0 | 2215 | 2683 | 82.6% |
| ov_SC02_003 | 2215 | 1728 | 0 | 2215 | 2683 | 82.6% |
| ov_SC02_004 | 2128 | 1693 | 0 | 2128 | 2401 | 88.6% |
| ov_SC02_005 | 2235 | 1689 | 0 | 2245 | 2927 | 76.7% |
| ov_SC02_011 | 2242 | 1696 | 0 | 2253 | 2893 | 77.9% |
| ov_SC02_015 | 2130 | 1695 | 0 | 2130 | 2414 | 88.2% |
| ov_SC02_016 | 2159 | 1695 | 0 | 2162 | 2545 | 85.0% |
| ov_SC02_017 | 2203 | 1695 | 0 | 2211 | 2732 | 80.9% |
| ov_SC02_021 | 2136 | 1695 | 0 | 2136 | 2437 | 87.6% |
| ov_SC02_026 | 2149 | 1693 | 0 | 2155 | 2572 | 83.8% |
| ov_SC02_027 | 2173 | 1693 | 0 | 2182 | 2692 | 81.1% |
| ov_SC02_028 | 2174 | 1693 | 0 | 2184 | 2701 | 80.9% |
| ov_SC02_031 | 2161 | 1694 | 0 | 2166 | 2562 | 84.5% |
| ov_SC02_035 | 2136 | 1693 | 0 | 2139 | 2520 | 84.9% |
| ov_SC02_039 | 2122 | 1693 | 0 | 2122 | 2416 | 87.8% |
| ov_SC02_041 | 2156 | 1693 | 0 | 2159 | 2561 | 84.3% |
| ov_SC03_001 | 2255 | 1694 | 0 | 2272 | 2869 | 79.2% |
| ov_SC03_002 | 2183 | 1698 | 0 | 2198 | 2631 | 83.5% |
| ov_SC03_003 | 2131 | 1693 | 0 | 2132 | 2423 | 88.0% |
| ov_SC03_006 | 2194 | 1699 | 0 | 2203 | 2767 | 79.6% |
| ov_SC03_007 | 2175 | 1693 | 0 | 2179 | 2623 | 83.1% |
| ov_SC03_010 | 2138 | 1693 | 0 | 2138 | 2470 | 86.6% |
| ov_SC03_011 | 2146 | 1693 | 0 | 2152 | 2527 | 85.2% |
| ov_SC03_012 | 2123 | 1693 | 0 | 2124 | 2406 | 88.3% |
| ov_SC03_013 | 2143 | 1693 | 0 | 2143 | 2492 | 86.0% |
| ov_SC03_014 | 2199 | 1718 | 0 | 2199 | 2685 | 81.9% |
| ov_SC03_015 | 2200 | 1718 | 0 | 2200 | 2685 | 81.9% |
| ov_SC03_023 | 2129 | 1693 | 0 | 2130 | 2435 | 87.5% |
| ov_SC03_024 | 2187 | 1698 | 0 | 2194 | 2641 | 83.1% |
| ov_SC03_028 | 2169 | 1693 | 0 | 2173 | 2664 | 81.6% |
| ov_SC03_029 | 2170 | 1695 | 0 | 2180 | 2644 | 82.5% |
| ov_SC03_030 | 2144 | 1698 | 0 | 2146 | 2495 | 86.0% |
| ov_SC03_031 | 2141 | 1693 | 0 | 2144 | 2514 | 85.3% |
| ov_SC03_089 | 2155 | 1693 | 0 | 2162 | 2581 | 83.8% |
| ov_SC03_090 | 2157 | 1693 | 0 | 2165 | 2625 | 82.5% |
| ov_SC03_091 | 2160 | 1693 | 0 | 2168 | 2640 | 82.1% |
| ov_SC03_092 | 2171 | 1693 | 0 | 2183 | 2587 | 84.4% |
| ov_SC03_093 | 2147 | 1693 | 0 | 2151 | 2563 | 83.9% |
| ov_SC03_094 | 2141 | 1693 | 0 | 2147 | 2577 | 83.3% |
| ov_SC03_095 | 2132 | 1693 | 0 | 2135 | 2474 | 86.3% |
| ov_SC03_096 | 2132 | 1693 | 0 | 2135 | 2465 | 86.6% |
| ov_SC03_097 | 2160 | 1693 | 0 | 2167 | 2603 | 83.3% |
| ov_SC03_098 | 2139 | 1693 | 0 | 2142 | 2541 | 84.3% |
| ov_SC03_099 | 2133 | 1693 | 0 | 2136 | 2504 | 85.3% |
| ov_SC03_100 | 2142 | 1693 | 0 | 2146 | 2539 | 84.5% |
| ov_SC03_101 | 2143 | 1693 | 0 | 2147 | 2528 | 84.9% |
| ov_SC03_102 | 2135 | 1693 | 0 | 2138 | 2492 | 85.8% |
| ov_SC03_103 | 2138 | 1695 | 0 | 2141 | 2510 | 85.3% |
| ov_SC03_104 | 2163 | 1693 | 0 | 2170 | 2616 | 83.0% |
| ov_SC03_105 | 2157 | 1693 | 0 | 2164 | 2597 | 83.3% |
| ov_SC03_108 | 2126 | 1693 | 0 | 2126 | 2443 | 87.0% |
| ov_SC03_109 | 2127 | 1693 | 0 | 2129 | 2424 | 87.8% |
| ov_SC03_110 | 2132 | 1693 | 0 | 2132 | 2468 | 86.4% |
| ov_SC03_111 | 2142 | 1693 | 0 | 2145 | 2510 | 85.5% |
| ov_SC03_112 | 2137 | 1695 | 0 | 2139 | 2526 | 84.7% |
| ov_SC03_113 | 2130 | 1695 | 0 | 2133 | 2468 | 86.4% |
| ov_SC03_114 | 2120 | 1693 | 0 | 2122 | 2415 | 87.9% |
| ov_SC03_115 | 2137 | 1693 | 0 | 2139 | 2472 | 86.5% |
| ov_SC03_116 | 2127 | 1693 | 0 | 2130 | 2438 | 87.4% |
| ov_SC03_117 | 2153 | 1693 | 0 | 2159 | 2557 | 84.4% |
| ov_SC03_118 | 2201 | 1717 | 0 | 2202 | 2685 | 82.0% |
| ov_SC03_119 | 2198 | 1717 | 0 | 2199 | 2685 | 81.9% |
| ov_SC03_121 | 2133 | 1693 | 0 | 2136 | 2459 | 86.9% |
| ov_SC03_124 | 2212 | 1689 | 0 | 2232 | 2741 | 81.4% |
| ov_SC03_125 | 2170 | 1693 | 0 | 2182 | 2588 | 84.3% |
| ov_SC03_126 | 2132 | 1695 | 0 | 2132 | 2423 | 88.0% |
| ov_SC04_000 | 2149 | 1697 | 0 | 2158 | 2546 | 84.8% |
| ov_SC04_002 | 2164 | 1693 | 0 | 2168 | 2636 | 82.2% |
| ov_SC04_003 | 2142 | 1693 | 0 | 2146 | 2502 | 85.8% |
| ov_SC04_004 | 2151 | 1693 | 0 | 2153 | 2558 | 84.2% |
| ov_SC04_005 | 2159 | 1693 | 0 | 2165 | 2612 | 82.9% |
| ov_SC04_006 | 2132 | 1693 | 0 | 2134 | 2454 | 87.0% |
| ov_SC04_007 | 2152 | 1693 | 0 | 2156 | 2569 | 83.9% |
| ov_SC04_008 | 2122 | 1693 | 0 | 2122 | 2415 | 87.9% |
| ov_SC04_009 | 2138 | 1693 | 0 | 2141 | 2441 | 87.7% |
| ov_SC04_010 | 2129 | 1693 | 0 | 2130 | 2419 | 88.1% |
| ov_SC04_011 | 2186 | 1693 | 0 | 2192 | 2803 | 78.2% |
| ov_SC04_012 | 2126 | 1693 | 0 | 2127 | 2420 | 87.9% |
| ov_SC04_015 | 2188 | 1694 | 0 | 2199 | 2611 | 84.2% |
| ov_SC04_016 | 2129 | 1693 | 0 | 2131 | 2440 | 87.3% |
| ov_SC04_018 | 2239 | 1728 | 0 | 2239 | 2857 | 78.4% |
| ov_SC04_019 | 2244 | 1728 | 0 | 2244 | 2857 | 78.5% |
| ov_SC04_020 | 2157 | 1693 | 0 | 2169 | 2567 | 84.5% |
| ov_SC04_021 | 2133 | 1695 | 0 | 2133 | 2423 | 88.0% |
| ov_SC05_000 | 2130 | 1697 | 0 | 2133 | 2422 | 88.1% |
| ov_SC05_001 | 2153 | 1693 | 0 | 2158 | 2574 | 83.8% |
| ov_SC05_002 | 2134 | 1693 | 0 | 2137 | 2442 | 87.5% |
| ov_SC05_003 | 2131 | 1693 | 0 | 2132 | 2481 | 85.9% |
| ov_SC05_004 | 2127 | 1693 | 0 | 2129 | 2464 | 86.4% |
| ov_SC05_005 | 2134 | 1693 | 0 | 2135 | 2491 | 85.7% |
| ov_SC05_006 | 2126 | 1693 | 0 | 2126 | 2430 | 87.5% |
| ov_SC05_007 | 2136 | 1693 | 0 | 2141 | 2482 | 86.3% |
| ov_SC05_008 | 2153 | 1693 | 0 | 2155 | 2543 | 84.7% |
| ov_SC05_009 | 2131 | 1693 | 0 | 2135 | 2438 | 87.6% |
| ov_SC05_010 | 2156 | 1693 | 0 | 2160 | 2588 | 83.5% |
| ov_SC05_011 | 2129 | 1693 | 0 | 2130 | 2409 | 88.4% |
| ov_SC05_017 | 2235 | 1690 | 0 | 2246 | 2842 | 79.0% |
| ov_SC05_018 | 2183 | 1693 | 0 | 2196 | 2673 | 82.2% |
| ov_SC05_019 | 2133 | 1695 | 0 | 2133 | 2423 | 88.0% |
| ov_SC06_000 | 2193 | 1702 | 0 | 2196 | 2691 | 81.6% |
| ov_SC06_006 | 2149 | 1693 | 0 | 2150 | 2511 | 85.6% |
| ov_SC06_008 | 2157 | 1695 | 0 | 2163 | 2542 | 85.1% |
| ov_SC06_010 | 2141 | 1693 | 0 | 2146 | 2517 | 85.3% |
| ov_SC06_011 | 2136 | 1693 | 0 | 2140 | 2468 | 86.7% |
| ov_SC06_013 | 2130 | 1693 | 0 | 2131 | 2425 | 87.9% |
| ov_SC06_014 | 2135 | 1693 | 0 | 2137 | 2453 | 87.1% |
| ov_SC06_015 | 2132 | 1693 | 0 | 2132 | 2421 | 88.1% |
| ov_SC06_016 | 2151 | 1693 | 0 | 2153 | 2549 | 84.5% |
| ov_SC06_018 | 2146 | 1696 | 0 | 2153 | 2665 | 80.8% |
| ov_SC06_020 | 2139 | 1695 | 0 | 2140 | 2518 | 85.0% |
| ov_SC06_022 | 2152 | 1693 | 0 | 2160 | 2642 | 81.8% |
| ov_SC06_024 | 2159 | 1693 | 0 | 2165 | 2667 | 81.2% |
| ov_SC06_025 | 2151 | 1693 | 0 | 2156 | 2572 | 83.8% |
| ov_SC06_027 | 2120 | 1693 | 0 | 2121 | 2408 | 88.1% |
| ov_SC06_029 | 2175 | 1693 | 0 | 2187 | 2662 | 82.2% |
| ov_SC06_030 | 2132 | 1693 | 0 | 2132 | 2456 | 86.8% |
| ov_SC06_032 | 2143 | 1694 | 0 | 2150 | 2658 | 80.9% |
| ov_SC06_033 | 2146 | 1694 | 0 | 2153 | 2631 | 81.8% |
| ov_SC07_000 | 2147 | 1697 | 0 | 2149 | 2521 | 85.2% |
| ov_SC07_001 | 2133 | 1693 | 0 | 2135 | 2454 | 87.0% |
| ov_SC07_002 | 2160 | 1693 | 0 | 2164 | 2579 | 83.9% |
| ov_SC07_006 | 1545 | 1543 | 0 | 1625 | 2456 | 66.2% |
| ov_SC07_007 | 2 | 0 | 0 | 86 | 2614 | 3.3% |
| ov_SC07_008 | 2117 | 1693 | 0 | 2117 | 2386 | 88.7% |
| ov_SC07_009 | 2127 | 1693 | 0 | 2129 | 2430 | 87.6% |
| ov_SC07_010 | 1 | 0 | 0 | 84 | 2526 | 3.3% |
| ov_SC07_011 | 2 | 0 | 0 | 82 | 2450 | 3.3% |