Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 7d9dd6deca feat(phase-29): func_8014D820 banked (41,952 ins) + conform_decls scalar-narrowing guard
WAVE 2 (9 never-drafted exemplars, ultracode): 9/9 returned, 5 MATCH / 4 near, 2.25M tokens.

BANKED: func_8014D820 (304 ins ×138) — and its agent ROOT-CAUSED the failure I left undiagnosed.
It was never an assembler problem: cc1 exit 33, `conflicting types for 'Ent'` vs
engine_types.h:434, surfaced by the recipe's `set -o pipefail` and MISATTRIBUTED to `as` because
`as` is the last stage in the pipe (Makefile:560). Fixed by moving V4/Desc/Ent to BLOCK scope —
byte-neutral and collision-proof across all 138 member TUs. Vindicates flagging it to the agent as
UNVERIFIED rather than passing my own guess forward as fact (§88e).
R22 clean-fleet 140/140.

NEW GUARD — SCALAR NARROWING IS NOT CALLER-NEUTRAL (byte-proven, and it cost 3 gate cycles):
conform_decls treated all decl type changes alike. A POINTER change is caller-neutral (func_80179B74
conformed 1,600 sites s16*/short* -> u16* and stayed byte-identical fleet-wide). A SCALAR WIDTH
change is NOT: narrowing `s32 a0` -> `u16 param_1` changes argument promotion at every call site.
MEASURED on func_80175DA8: decls reverted -> gate says PLUMBING; conform applied -> gate says DIFF.
The conform did not fix the draft, it changed the CALLERS. Now warned explicitly (not refused — the
draft's sig is still byte-truth for the callee and the gate arbitrates), with the instruction that a
DIFF after this conform means examine the callers (§17a-1 pair), not the body.
Verified the guard discriminates: fires on func_80175DA8 (s32->u16), silent on func_80179B74.

STILL OPEN from wave 2: func_80176218 + func_80175AB8 (DATA-symbol conflicts, D_80078EB4 /
D_8011F7BC -> reconcile_decls) · func_80175DA8 + func_80135EB0 (need the §17a-1 caller pair, not a
bare conform) · 4 near-misses with precise residuals recorded (func_80176734 129 length-drift,
func_80140958 49 inverted-hoist, func_80177B5C 19 sched tie, func_8017C974 83 -> permuter).
2026-07-27 15:38:15 -06:00

9.1 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: 317488 / 353720 = 89.76% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 10841343 / 13141652 = 82.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 3980298 / 5634875 = 70.6% (65726/87459 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 10840907 / 13081451 = 82.9%)

FLEET REAL substantive : 315633 (of which dedup-shared 239530 via 1886 groups / 239604 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 36225 FLEET matchable : 353720

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 2261 1742 0 2261 2403 94.1%
ov_SC01_001 2266 1743 0 2268 2466 92.0%
ov_SC01_004 2256 1734 0 2257 2414 93.5%
ov_SC01_005 2286 1757 0 2286 2503 91.3%
ov_SC01_006 2286 1757 0 2286 2503 91.3%
ov_SC01_008 2256 1734 0 2258 2426 93.1%
ov_SC01_009 2282 1735 0 2283 2507 91.1%
ov_SC01_074 2260 1735 0 2262 2425 93.3%
ov_SC01_077 2441 1702 0 2443 2585 94.5%
ov_SC01_080 2298 1738 0 2298 2512 91.5%
ov_SC01_084 2305 1738 0 2310 2579 89.6%
ov_SC02_000 2358 1773 0 2358 2683 87.9%
ov_SC02_003 2358 1773 0 2358 2683 87.9%
ov_SC02_004 2264 1738 0 2264 2401 94.3%
ov_SC02_005 2372 1734 0 2382 2927 81.4%
ov_SC02_011 2385 1741 0 2396 2893 82.8%
ov_SC02_015 2266 1740 0 2266 2414 93.9%
ov_SC02_016 2300 1740 0 2303 2545 90.5%
ov_SC02_017 2343 1740 0 2351 2732 86.1%
ov_SC02_021 2272 1740 0 2272 2437 93.2%
ov_SC02_026 2287 1738 0 2293 2572 89.2%
ov_SC02_027 2310 1738 0 2319 2692 86.1%
ov_SC02_028 2312 1738 0 2322 2701 86.0%
ov_SC02_031 2298 1739 0 2303 2562 89.9%
ov_SC02_035 2273 1738 0 2276 2520 90.3%
ov_SC02_039 2257 1738 0 2257 2416 93.4%
ov_SC02_041 2295 1738 0 2298 2561 89.7%
ov_SC03_001 2392 1739 0 2409 2869 84.0%
ov_SC03_002 2318 1743 0 2333 2631 88.7%
ov_SC03_003 2267 1738 0 2268 2423 93.6%
ov_SC03_006 2334 1744 0 2343 2767 84.7%
ov_SC03_007 2312 1738 0 2316 2623 88.3%
ov_SC03_010 2275 1738 0 2275 2471 92.1%
ov_SC03_011 2281 1738 0 2287 2527 90.5%
ov_SC03_012 2259 1738 0 2260 2406 93.9%
ov_SC03_013 2280 1738 0 2280 2493 91.5%
ov_SC03_014 2338 1763 0 2338 2685 87.1%
ov_SC03_015 2338 1763 0 2338 2685 87.1%
ov_SC03_023 2266 1738 0 2267 2435 93.1%
ov_SC03_024 2326 1743 0 2333 2641 88.3%
ov_SC03_028 2306 1738 0 2310 2664 86.7%
ov_SC03_029 2308 1740 0 2318 2644 87.7%
ov_SC03_030 2281 1743 0 2283 2495 91.5%
ov_SC03_031 2277 1738 0 2280 2514 90.7%
ov_SC03_089 2294 1738 0 2301 2581 89.2%
ov_SC03_090 2295 1738 0 2303 2625 87.7%
ov_SC03_091 2298 1738 0 2306 2640 87.3%
ov_SC03_092 2308 1738 0 2320 2587 89.7%
ov_SC03_093 2284 1738 0 2288 2563 89.3%
ov_SC03_094 2279 1738 0 2285 2577 88.7%
ov_SC03_095 2269 1738 0 2272 2474 91.8%
ov_SC03_096 2269 1738 0 2272 2465 92.2%
ov_SC03_097 2299 1738 0 2306 2603 88.6%
ov_SC03_098 2277 1738 0 2280 2541 89.7%
ov_SC03_099 2270 1738 0 2273 2504 90.8%
ov_SC03_100 2280 1738 0 2284 2539 90.0%
ov_SC03_101 2280 1738 0 2284 2528 90.3%
ov_SC03_102 2273 1738 0 2276 2492 91.3%
ov_SC03_103 2276 1740 0 2279 2510 90.8%
ov_SC03_104 2302 1738 0 2309 2616 88.3%
ov_SC03_105 2293 1738 0 2300 2597 88.6%
ov_SC03_108 2260 1738 0 2260 2443 92.5%
ov_SC03_109 2264 1738 0 2266 2424 93.5%
ov_SC03_110 2268 1738 0 2268 2468 91.9%
ov_SC03_111 2279 1738 0 2282 2510 90.9%
ov_SC03_112 2275 1740 0 2277 2526 90.1%
ov_SC03_113 2268 1740 0 2271 2468 92.0%
ov_SC03_114 2257 1738 0 2259 2415 93.5%
ov_SC03_115 2274 1738 0 2276 2472 92.1%
ov_SC03_116 2265 1738 0 2268 2438 93.0%
ov_SC03_117 2292 1738 0 2298 2557 89.9%
ov_SC03_118 2338 1762 0 2339 2685 87.1%
ov_SC03_119 2337 1762 0 2338 2685 87.1%
ov_SC03_121 2272 1738 0 2275 2459 92.5%
ov_SC03_124 2350 1734 0 2370 2741 86.5%
ov_SC03_125 2306 1738 0 2318 2588 89.6%
ov_SC03_126 2269 1740 0 2269 2423 93.6%
ov_SC04_000 2285 1742 0 2294 2546 90.1%
ov_SC04_002 2304 1738 0 2308 2636 87.6%
ov_SC04_003 2280 1738 0 2284 2502 91.3%
ov_SC04_004 2289 1738 0 2291 2558 89.6%
ov_SC04_005 2299 1738 0 2305 2612 88.2%
ov_SC04_006 2269 1738 0 2271 2454 92.5%
ov_SC04_007 2293 1738 0 2297 2569 89.4%
ov_SC04_008 2261 1738 0 2261 2415 93.6%
ov_SC04_009 2276 1738 0 2279 2441 93.4%
ov_SC04_010 2266 1738 0 2267 2419 93.7%
ov_SC04_011 2324 1738 0 2330 2803 83.1%
ov_SC04_012 2263 1738 0 2264 2420 93.6%
ov_SC04_015 2328 1739 0 2339 2611 89.6%
ov_SC04_016 2266 1738 0 2268 2440 93.0%
ov_SC04_018 2376 1773 0 2376 2857 83.2%
ov_SC04_019 2382 1773 0 2382 2857 83.4%
ov_SC04_020 2293 1738 0 2305 2567 89.8%
ov_SC04_021 2270 1740 0 2270 2423 93.7%
ov_SC05_000 2267 1742 0 2270 2422 93.7%
ov_SC05_001 2289 1738 0 2294 2574 89.1%
ov_SC05_002 2272 1738 0 2275 2442 93.2%
ov_SC05_003 2269 1738 0 2270 2481 91.5%
ov_SC05_004 2265 1738 0 2267 2464 92.0%
ov_SC05_005 2270 1738 0 2271 2491 91.2%
ov_SC05_006 2263 1738 0 2263 2430 93.1%
ov_SC05_007 2273 1738 0 2278 2482 91.8%
ov_SC05_008 2290 1738 0 2292 2543 90.1%
ov_SC05_009 2269 1738 0 2273 2438 93.2%
ov_SC05_010 2296 1738 0 2300 2588 88.9%
ov_SC05_011 2265 1738 0 2266 2409 94.1%
ov_SC05_017 2372 1735 0 2383 2842 83.8%
ov_SC05_018 2319 1738 0 2332 2673 87.2%
ov_SC05_019 2270 1740 0 2270 2423 93.7%
ov_SC06_000 2334 1747 0 2337 2691 86.8%
ov_SC06_006 2286 1738 0 2287 2511 91.1%
ov_SC06_008 2306 1740 0 2312 2542 91.0%
ov_SC06_010 2286 1738 0 2291 2517 91.0%
ov_SC06_011 2274 1738 0 2278 2468 92.3%
ov_SC06_013 2268 1738 0 2269 2425 93.6%
ov_SC06_014 2274 1738 0 2276 2453 92.8%
ov_SC06_015 2271 1738 0 2271 2421 93.8%
ov_SC06_016 2289 1738 0 2291 2549 89.9%
ov_SC06_018 2300 1740 0 2307 2665 86.6%
ov_SC06_020 2278 1740 0 2279 2518 90.5%
ov_SC06_022 2297 1738 0 2305 2642 87.2%
ov_SC06_024 2307 1738 0 2313 2667 86.7%
ov_SC06_025 2291 1738 0 2296 2572 89.3%
ov_SC06_027 2256 1738 0 2257 2408 93.7%
ov_SC06_029 2317 1738 0 2329 2662 87.5%
ov_SC06_030 2270 1738 0 2270 2456 92.4%
ov_SC06_032 2292 1739 0 2299 2658 86.5%
ov_SC06_033 2294 1739 0 2301 2631 87.5%
ov_SC07_000 2285 1742 0 2287 2521 90.7%
ov_SC07_001 2269 1738 0 2271 2454 92.5%
ov_SC07_002 2297 1738 0 2301 2579 89.2%
ov_SC07_006 2070 1555 0 2150 2456 87.5%
ov_SC07_007 2064 1586 0 2148 2613 82.2%
ov_SC07_008 2254 1738 0 2254 2386 94.5%
ov_SC07_009 2263 1738 0 2265 2430 93.2%
ov_SC07_010 2096 1608 0 2179 2524 86.3%
ov_SC07_011 2064 1585 0 2144 2449 87.5%