Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 02b16fa7a7 refactor(phase-29): DELETE gate_stage's jtbl pre-pass (R33) + the honest ladder measurement
gate_stage._jtbl_prepare carried the SAME config-only undo as harvest_verify's did,
and ate the tree again on the first ladder run: 5 orphan region files, truncated
TUs, `undefined reference to func_80192F64`. That INVALIDATED the run's 0/10, so it
was re-measured rather than reported (R35 — a probe from a broken tool is not
evidence). Tree restored from HEAD and re-verified byte-identical first.

DELETED, not patched (R33 — the best outcome is a deleted stage). It was wrong on
two independent axes:
  1. §61b already byte-proved THE CARVE MUST FOLLOW THE SPLICE. A batch pre-pass
     carving unspliced functions reports "prepared" and yields a spec that fails
     once the body lands — which is why it banked nothing.
  2. Its undo snapshotted only config/, while jr_isolate_all rewrites region 0 back
     over the ORIGINAL src/<ov>/<nm>.c truncated.
harvest_verify's per-draft prep is the correct mechanism, snapshots the full source
set, and undoes per function. Two implementations of one capability, the outer one
ineffective AND destructive.

THE HONEST RE-MEASUREMENT (clean tree; tree verified clean after):
- 0/10 bank, but 9/10 now COMPILE and land as whole-binary byte-DIFF; 1/10 plumbing.
- match_one close=0 on several (the function's own bytes exact) and rtu_match says
  MATCH-in-real-TU for func_80135888 — while func_801299C8's transformed draft does
  not compile in its real TU at all. The residual is MIXED, not uniform; at least one
  is an IMAGE-level effect rather than the draft or its TU decl context (prime
  suspect: jtbl/rodata carve placement). NOT generalized from one data point.
- This PRICES Task 14 stages 2-3 by measurement: the existing ladder converts 0 of
  10, so they are not "wire in normalize_self_decls + the type-lift and collect ten
  banks" — the projection error §57a already caught once this phase.

- R22 clean-fleet 140/140 BYTE-IDENTICAL with the giant func_8018F694 banked and the
  func_80135A4C family swept 138/138
- cookbook §61d (the tree-eating undo in two tools; the constant-label defect; the
  re-probe + ladder measurements; the general rule: an undo whose scope is narrower
  than its write scope destroys work no byte-gate can see)
- decision-log + CURRENT_PHASE updated (R30/R31)
2026-07-22 01:55:47 -06:00

9.0 KiB
Raw Blame History

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: 311220 / 353722 = 87.98% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10233249 / 13081451 = 78.2% (shipped .text across resident+138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 3733280 / 5574674 = 67.0% (64239/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 : 309365 (of which dedup-shared 234437 via 1848 groups / 234481 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 42495 FLEET matchable : 353722

binary REAL shared LINKED byte-ident matchable byte-ident %
main 54 2 959 1055 2096 50.3%
resident 129 0 0 131 145 90.3%
ov_SC01_000 2221 1706 0 2221 2403 92.4%
ov_SC01_001 2221 1706 0 2223 2466 90.1%
ov_SC01_004 2213 1697 0 2214 2414 91.7%
ov_SC01_005 2242 1719 0 2242 2503 89.6%
ov_SC01_006 2242 1719 0 2242 2503 89.6%
ov_SC01_008 2213 1697 0 2215 2426 91.3%
ov_SC01_009 2238 1698 0 2239 2507 89.3%
ov_SC01_074 2216 1698 0 2218 2425 91.5%
ov_SC01_077 2408 1666 0 2410 2585 93.2%
ov_SC01_080 2255 1701 0 2255 2512 89.8%
ov_SC01_084 2262 1701 0 2267 2579 87.9%
ov_SC02_000 2315 1736 0 2315 2683 86.3%
ov_SC02_003 2315 1736 0 2315 2683 86.3%
ov_SC02_004 2221 1701 0 2221 2401 92.5%
ov_SC02_005 2328 1697 0 2338 2927 79.9%
ov_SC02_011 2339 1704 0 2350 2893 81.2%
ov_SC02_015 2222 1703 0 2222 2414 92.0%
ov_SC02_016 2253 1703 0 2256 2545 88.6%
ov_SC02_017 2299 1703 0 2307 2732 84.4%
ov_SC02_021 2228 1703 0 2228 2437 91.4%
ov_SC02_026 2243 1701 0 2249 2572 87.4%
ov_SC02_027 2266 1701 0 2275 2692 84.5%
ov_SC02_028 2267 1701 0 2277 2701 84.3%
ov_SC02_031 2253 1702 0 2258 2562 88.1%
ov_SC02_035 2229 1701 0 2232 2520 88.6%
ov_SC02_039 2214 1701 0 2214 2416 91.6%
ov_SC02_041 2249 1701 0 2252 2561 87.9%
ov_SC03_001 2350 1702 0 2367 2869 82.5%
ov_SC03_002 2276 1706 0 2291 2631 87.1%
ov_SC03_003 2224 1701 0 2225 2423 91.8%
ov_SC03_006 2289 1707 0 2298 2767 83.1%
ov_SC03_007 2269 1701 0 2273 2623 86.7%
ov_SC03_010 2230 1701 0 2230 2470 90.3%
ov_SC03_011 2238 1701 0 2244 2527 88.8%
ov_SC03_012 2216 1701 0 2217 2406 92.1%
ov_SC03_013 2235 1701 0 2235 2492 89.7%
ov_SC03_014 2294 1726 0 2294 2685 85.4%
ov_SC03_015 2294 1726 0 2294 2685 85.4%
ov_SC03_023 2222 1701 0 2223 2435 91.3%
ov_SC03_024 2281 1706 0 2288 2641 86.6%
ov_SC03_028 2262 1701 0 2266 2664 85.1%
ov_SC03_029 2264 1703 0 2274 2644 86.0%
ov_SC03_030 2237 1706 0 2239 2495 89.7%
ov_SC03_031 2234 1701 0 2237 2514 89.0%
ov_SC03_089 2248 1701 0 2255 2581 87.4%
ov_SC03_090 2250 1701 0 2258 2625 86.0%
ov_SC03_091 2253 1701 0 2261 2640 85.6%
ov_SC03_092 2264 1701 0 2276 2587 88.0%
ov_SC03_093 2240 1701 0 2244 2563 87.6%
ov_SC03_094 2235 1701 0 2241 2577 87.0%
ov_SC03_095 2225 1701 0 2228 2474 90.1%
ov_SC03_096 2225 1701 0 2228 2465 90.4%
ov_SC03_097 2254 1701 0 2261 2603 86.9%
ov_SC03_098 2233 1701 0 2236 2541 88.0%
ov_SC03_099 2226 1701 0 2229 2504 89.0%
ov_SC03_100 2236 1701 0 2240 2539 88.2%
ov_SC03_101 2236 1701 0 2240 2528 88.6%
ov_SC03_102 2228 1701 0 2231 2492 89.5%
ov_SC03_103 2231 1703 0 2234 2510 89.0%
ov_SC03_104 2256 1701 0 2263 2616 86.5%
ov_SC03_105 2250 1701 0 2257 2597 86.9%
ov_SC03_108 2218 1701 0 2218 2443 90.8%
ov_SC03_109 2219 1701 0 2221 2424 91.6%
ov_SC03_110 2224 1701 0 2224 2468 90.1%
ov_SC03_111 2236 1701 0 2239 2510 89.2%
ov_SC03_112 2229 1703 0 2231 2526 88.3%
ov_SC03_113 2222 1703 0 2225 2468 90.2%
ov_SC03_114 2212 1701 0 2214 2415 91.7%
ov_SC03_115 2229 1701 0 2231 2472 90.3%
ov_SC03_116 2219 1701 0 2222 2438 91.1%
ov_SC03_117 2247 1701 0 2253 2557 88.1%
ov_SC03_118 2294 1725 0 2295 2685 85.5%
ov_SC03_119 2293 1725 0 2294 2685 85.4%
ov_SC03_121 2226 1701 0 2229 2459 90.6%
ov_SC03_124 2306 1697 0 2326 2741 84.9%
ov_SC03_125 2263 1701 0 2275 2588 87.9%
ov_SC03_126 2225 1703 0 2225 2423 91.8%
ov_SC04_000 2241 1705 0 2250 2546 88.4%
ov_SC04_002 2257 1701 0 2261 2636 85.8%
ov_SC04_003 2235 1701 0 2239 2502 89.5%
ov_SC04_004 2244 1701 0 2246 2558 87.8%
ov_SC04_005 2252 1701 0 2258 2612 86.4%
ov_SC04_006 2225 1701 0 2227 2454 90.7%
ov_SC04_007 2245 1701 0 2249 2569 87.5%
ov_SC04_008 2215 1701 0 2215 2415 91.7%
ov_SC04_009 2231 1701 0 2234 2441 91.5%
ov_SC04_010 2222 1701 0 2223 2419 91.9%
ov_SC04_011 2278 1701 0 2284 2803 81.5%
ov_SC04_012 2218 1701 0 2219 2420 91.7%
ov_SC04_015 2283 1702 0 2294 2611 87.9%
ov_SC04_016 2221 1701 0 2223 2440 91.1%
ov_SC04_018 2333 1736 0 2333 2857 81.7%
ov_SC04_019 2339 1736 0 2339 2857 81.9%
ov_SC04_020 2250 1701 0 2262 2567 88.1%
ov_SC04_021 2226 1703 0 2226 2423 91.9%
ov_SC05_000 2222 1705 0 2225 2422 91.9%
ov_SC05_001 2245 1701 0 2250 2574 87.4%
ov_SC05_002 2227 1701 0 2230 2442 91.3%
ov_SC05_003 2224 1701 0 2225 2481 89.7%
ov_SC05_004 2219 1701 0 2221 2464 90.1%
ov_SC05_005 2226 1701 0 2227 2491 89.4%
ov_SC05_006 2218 1701 0 2218 2430 91.3%
ov_SC05_007 2228 1701 0 2233 2482 90.0%
ov_SC05_008 2245 1701 0 2247 2543 88.4%
ov_SC05_009 2223 1701 0 2227 2438 91.3%
ov_SC05_010 2249 1701 0 2253 2588 87.1%
ov_SC05_011 2221 1701 0 2222 2409 92.2%
ov_SC05_017 2329 1698 0 2340 2842 82.3%
ov_SC05_018 2276 1701 0 2289 2673 85.6%
ov_SC05_019 2226 1703 0 2226 2423 91.9%
ov_SC06_000 2288 1710 0 2291 2691 85.1%
ov_SC06_006 2241 1701 0 2242 2511 89.3%
ov_SC06_008 2251 1703 0 2257 2542 88.8%
ov_SC06_010 2234 1701 0 2239 2517 89.0%
ov_SC06_011 2230 1701 0 2234 2468 90.5%
ov_SC06_013 2223 1701 0 2224 2425 91.7%
ov_SC06_014 2229 1701 0 2231 2453 90.9%
ov_SC06_015 2226 1701 0 2226 2421 91.9%
ov_SC06_016 2244 1701 0 2246 2549 88.1%
ov_SC06_018 2241 1704 0 2248 2665 84.4%
ov_SC06_020 2233 1703 0 2234 2518 88.7%
ov_SC06_022 2247 1701 0 2255 2642 85.4%
ov_SC06_024 2253 1701 0 2259 2667 84.7%
ov_SC06_025 2244 1701 0 2249 2572 87.4%
ov_SC06_027 2212 1701 0 2213 2408 91.9%
ov_SC06_029 2270 1701 0 2282 2662 85.7%
ov_SC06_030 2225 1701 0 2225 2456 90.6%
ov_SC06_032 2237 1702 0 2244 2658 84.4%
ov_SC06_033 2240 1702 0 2247 2631 85.4%
ov_SC07_000 2240 1705 0 2242 2521 88.9%
ov_SC07_001 2225 1701 0 2227 2454 90.7%
ov_SC07_002 2252 1701 0 2256 2579 87.5%
ov_SC07_006 1994 1549 0 2074 2456 84.4%
ov_SC07_007 2011 1550 0 2095 2614 80.1%
ov_SC07_008 2209 1701 0 2209 2386 92.6%
ov_SC07_009 2219 1701 0 2221 2430 91.4%
ov_SC07_010 2022 1550 0 2105 2526 83.3%
ov_SC07_011 2010 1549 0 2090 2450 85.3%