Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 6fad5d19c8 feat(phase-29): T43 — func_80140D68 banked + swept 137/137; the §94 extract_unit CARRY GAP characterized
The §99 conform_decls pass REFUSED this one (§85: 414 callers consume the return), so it was solved
from the DRAFT side. Three blockers, each measured:

1. §94 type-carry, and the draft's own header asserted something FALSE — it claimed both typedefs
   already exist in engine_types.h. Measured: Hw4 1 hit, Prim4 1 hit, Env_800D29F8 ZERO. So in the
   real TU the #ifndef guard is DEFINED and the typedef vanished -> "parse error before D_800AE7BC".
2. Signature axis: conformed the DRAFT to the fleet's declared `s32 *` return, then param 2
   (s16 * -> Prim4 *). Byte-neutral because `src` is used EXACTLY once, as (s32)src. The error
   ("argument `src' doesn't match prototype") is again printed with NO "error:" prefix.
3. The family sweep went 0/137 TWICE before 137/137.

THE REUSABLE FINDING — a 0/N sweep whose exemplar banks cleanly is the signature of an extract_unit
carry gap. Measured on the staged member drafts:
  file-scope extern      -> CARRIED
  file-scope #define     -> CARRIED, but only while its expansion's deps stay file-scope
  file-scope typedef     -> NOT carried (silently dropped)
  #define whose expansion references a BODY-LOCAL extern -> NOT carried
RECIPE: make the draft SELF-CONTAINED — body-local typedefs survive (PTag_80140D68 in this same
draft was the proof all along), and if that pushes a macro's dependency body-local, inline the macro
at its use sites. 0/137 -> 0/137 -> 137/137, 0 failed, each step byte-measured.

R22 clean-fleet 140 passed / 0 failed of 140; dedup-check 1886/0.
Fleet 85.5% instr, 76.1% distinct, 90.57 -> 90.61% fn-count.
§99 arc total (T41-T43): 133 + 1 + 137 = 271 functions. Both blockers Drew green-lit are CLOSED.
2026-07-28 14:17:50 -06:00

161 lines
9.1 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: 320519 / 353720 = 90.61% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 11239431 / 13141652 = 85.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 4287712 / 5634875 = 76.1% (67682/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: 11238995 / 13081451 = 85.9%)
FLEET REAL substantive : 318664 (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 : 33194
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 | 2283 | 1742 | 0 | 2283 | 2403 | 95.0% |
| ov_SC01_001 | 2288 | 1743 | 0 | 2290 | 2466 | 92.9% |
| ov_SC01_004 | 2278 | 1734 | 0 | 2279 | 2414 | 94.4% |
| ov_SC01_005 | 2308 | 1757 | 0 | 2308 | 2503 | 92.2% |
| ov_SC01_006 | 2308 | 1757 | 0 | 2308 | 2503 | 92.2% |
| ov_SC01_008 | 2278 | 1734 | 0 | 2280 | 2426 | 94.0% |
| ov_SC01_009 | 2304 | 1735 | 0 | 2305 | 2507 | 91.9% |
| ov_SC01_074 | 2282 | 1735 | 0 | 2284 | 2425 | 94.2% |
| ov_SC01_077 | 2463 | 1702 | 0 | 2465 | 2585 | 95.4% |
| ov_SC01_080 | 2320 | 1738 | 0 | 2320 | 2512 | 92.4% |
| ov_SC01_084 | 2327 | 1738 | 0 | 2332 | 2579 | 90.4% |
| ov_SC02_000 | 2380 | 1773 | 0 | 2380 | 2683 | 88.7% |
| ov_SC02_003 | 2380 | 1773 | 0 | 2380 | 2683 | 88.7% |
| ov_SC02_004 | 2286 | 1738 | 0 | 2286 | 2401 | 95.2% |
| ov_SC02_005 | 2394 | 1734 | 0 | 2404 | 2927 | 82.1% |
| ov_SC02_011 | 2407 | 1741 | 0 | 2418 | 2893 | 83.6% |
| ov_SC02_015 | 2288 | 1740 | 0 | 2288 | 2414 | 94.8% |
| ov_SC02_016 | 2322 | 1740 | 0 | 2325 | 2545 | 91.4% |
| ov_SC02_017 | 2366 | 1740 | 0 | 2374 | 2732 | 86.9% |
| ov_SC02_021 | 2294 | 1740 | 0 | 2294 | 2437 | 94.1% |
| ov_SC02_026 | 2309 | 1738 | 0 | 2315 | 2572 | 90.0% |
| ov_SC02_027 | 2332 | 1738 | 0 | 2341 | 2692 | 87.0% |
| ov_SC02_028 | 2334 | 1738 | 0 | 2344 | 2701 | 86.8% |
| ov_SC02_031 | 2320 | 1739 | 0 | 2325 | 2562 | 90.7% |
| ov_SC02_035 | 2295 | 1738 | 0 | 2298 | 2520 | 91.2% |
| ov_SC02_039 | 2279 | 1738 | 0 | 2279 | 2416 | 94.3% |
| ov_SC02_041 | 2317 | 1738 | 0 | 2320 | 2561 | 90.6% |
| ov_SC03_001 | 2414 | 1739 | 0 | 2431 | 2869 | 84.7% |
| ov_SC03_002 | 2340 | 1743 | 0 | 2355 | 2631 | 89.5% |
| ov_SC03_003 | 2289 | 1738 | 0 | 2290 | 2423 | 94.5% |
| ov_SC03_006 | 2357 | 1744 | 0 | 2366 | 2767 | 85.5% |
| ov_SC03_007 | 2334 | 1738 | 0 | 2338 | 2623 | 89.1% |
| ov_SC03_010 | 2297 | 1738 | 0 | 2297 | 2471 | 93.0% |
| ov_SC03_011 | 2303 | 1738 | 0 | 2309 | 2527 | 91.4% |
| ov_SC03_012 | 2281 | 1738 | 0 | 2282 | 2406 | 94.8% |
| ov_SC03_013 | 2302 | 1738 | 0 | 2302 | 2493 | 92.3% |
| ov_SC03_014 | 2360 | 1763 | 0 | 2360 | 2685 | 87.9% |
| ov_SC03_015 | 2360 | 1763 | 0 | 2360 | 2685 | 87.9% |
| ov_SC03_023 | 2288 | 1738 | 0 | 2289 | 2435 | 94.0% |
| ov_SC03_024 | 2348 | 1743 | 0 | 2355 | 2641 | 89.2% |
| ov_SC03_028 | 2328 | 1738 | 0 | 2332 | 2664 | 87.5% |
| ov_SC03_029 | 2330 | 1740 | 0 | 2340 | 2644 | 88.5% |
| ov_SC03_030 | 2303 | 1743 | 0 | 2305 | 2495 | 92.4% |
| ov_SC03_031 | 2299 | 1738 | 0 | 2302 | 2514 | 91.6% |
| ov_SC03_089 | 2316 | 1738 | 0 | 2323 | 2581 | 90.0% |
| ov_SC03_090 | 2317 | 1738 | 0 | 2325 | 2625 | 88.6% |
| ov_SC03_091 | 2320 | 1738 | 0 | 2328 | 2640 | 88.2% |
| ov_SC03_092 | 2330 | 1738 | 0 | 2342 | 2587 | 90.5% |
| ov_SC03_093 | 2306 | 1738 | 0 | 2310 | 2563 | 90.1% |
| ov_SC03_094 | 2301 | 1738 | 0 | 2307 | 2577 | 89.5% |
| ov_SC03_095 | 2291 | 1738 | 0 | 2294 | 2474 | 92.7% |
| ov_SC03_096 | 2291 | 1738 | 0 | 2294 | 2465 | 93.1% |
| ov_SC03_097 | 2321 | 1738 | 0 | 2328 | 2603 | 89.4% |
| ov_SC03_098 | 2299 | 1738 | 0 | 2302 | 2541 | 90.6% |
| ov_SC03_099 | 2292 | 1738 | 0 | 2295 | 2504 | 91.7% |
| ov_SC03_100 | 2302 | 1738 | 0 | 2306 | 2539 | 90.8% |
| ov_SC03_101 | 2302 | 1738 | 0 | 2306 | 2528 | 91.2% |
| ov_SC03_102 | 2295 | 1738 | 0 | 2298 | 2492 | 92.2% |
| ov_SC03_103 | 2298 | 1740 | 0 | 2301 | 2510 | 91.7% |
| ov_SC03_104 | 2324 | 1738 | 0 | 2331 | 2616 | 89.1% |
| ov_SC03_105 | 2315 | 1738 | 0 | 2322 | 2597 | 89.4% |
| ov_SC03_108 | 2282 | 1738 | 0 | 2282 | 2443 | 93.4% |
| ov_SC03_109 | 2286 | 1738 | 0 | 2288 | 2424 | 94.4% |
| ov_SC03_110 | 2290 | 1738 | 0 | 2290 | 2468 | 92.8% |
| ov_SC03_111 | 2301 | 1738 | 0 | 2304 | 2510 | 91.8% |
| ov_SC03_112 | 2297 | 1740 | 0 | 2299 | 2526 | 91.0% |
| ov_SC03_113 | 2290 | 1740 | 0 | 2293 | 2468 | 92.9% |
| ov_SC03_114 | 2279 | 1738 | 0 | 2281 | 2415 | 94.5% |
| ov_SC03_115 | 2296 | 1738 | 0 | 2298 | 2472 | 93.0% |
| ov_SC03_116 | 2287 | 1738 | 0 | 2290 | 2438 | 93.9% |
| ov_SC03_117 | 2314 | 1738 | 0 | 2320 | 2557 | 90.7% |
| ov_SC03_118 | 2360 | 1762 | 0 | 2361 | 2685 | 87.9% |
| ov_SC03_119 | 2359 | 1762 | 0 | 2360 | 2685 | 87.9% |
| ov_SC03_121 | 2294 | 1738 | 0 | 2297 | 2459 | 93.4% |
| ov_SC03_124 | 2372 | 1734 | 0 | 2392 | 2741 | 87.3% |
| ov_SC03_125 | 2328 | 1738 | 0 | 2340 | 2588 | 90.4% |
| ov_SC03_126 | 2291 | 1740 | 0 | 2291 | 2423 | 94.6% |
| ov_SC04_000 | 2307 | 1742 | 0 | 2316 | 2546 | 91.0% |
| ov_SC04_002 | 2326 | 1738 | 0 | 2330 | 2636 | 88.4% |
| ov_SC04_003 | 2302 | 1738 | 0 | 2306 | 2502 | 92.2% |
| ov_SC04_004 | 2311 | 1738 | 0 | 2313 | 2558 | 90.4% |
| ov_SC04_005 | 2321 | 1738 | 0 | 2327 | 2612 | 89.1% |
| ov_SC04_006 | 2291 | 1738 | 0 | 2293 | 2454 | 93.4% |
| ov_SC04_007 | 2315 | 1738 | 0 | 2319 | 2569 | 90.3% |
| ov_SC04_008 | 2283 | 1738 | 0 | 2283 | 2415 | 94.5% |
| ov_SC04_009 | 2298 | 1738 | 0 | 2301 | 2441 | 94.3% |
| ov_SC04_010 | 2288 | 1738 | 0 | 2289 | 2419 | 94.6% |
| ov_SC04_011 | 2346 | 1738 | 0 | 2352 | 2803 | 83.9% |
| ov_SC04_012 | 2285 | 1738 | 0 | 2286 | 2420 | 94.5% |
| ov_SC04_015 | 2350 | 1739 | 0 | 2361 | 2611 | 90.4% |
| ov_SC04_016 | 2288 | 1738 | 0 | 2290 | 2440 | 93.9% |
| ov_SC04_018 | 2398 | 1773 | 0 | 2398 | 2857 | 83.9% |
| ov_SC04_019 | 2404 | 1773 | 0 | 2404 | 2857 | 84.1% |
| ov_SC04_020 | 2315 | 1738 | 0 | 2327 | 2567 | 90.7% |
| ov_SC04_021 | 2292 | 1740 | 0 | 2292 | 2423 | 94.6% |
| ov_SC05_000 | 2289 | 1742 | 0 | 2292 | 2422 | 94.6% |
| ov_SC05_001 | 2311 | 1738 | 0 | 2316 | 2574 | 90.0% |
| ov_SC05_002 | 2294 | 1738 | 0 | 2297 | 2442 | 94.1% |
| ov_SC05_003 | 2291 | 1738 | 0 | 2292 | 2481 | 92.4% |
| ov_SC05_004 | 2287 | 1738 | 0 | 2289 | 2464 | 92.9% |
| ov_SC05_005 | 2292 | 1738 | 0 | 2293 | 2491 | 92.1% |
| ov_SC05_006 | 2285 | 1738 | 0 | 2285 | 2430 | 94.0% |
| ov_SC05_007 | 2295 | 1738 | 0 | 2300 | 2482 | 92.7% |
| ov_SC05_008 | 2312 | 1738 | 0 | 2314 | 2543 | 91.0% |
| ov_SC05_009 | 2291 | 1738 | 0 | 2295 | 2438 | 94.1% |
| ov_SC05_010 | 2318 | 1738 | 0 | 2322 | 2588 | 89.7% |
| ov_SC05_011 | 2287 | 1738 | 0 | 2288 | 2409 | 95.0% |
| ov_SC05_017 | 2394 | 1735 | 0 | 2405 | 2842 | 84.6% |
| ov_SC05_018 | 2341 | 1738 | 0 | 2354 | 2673 | 88.1% |
| ov_SC05_019 | 2292 | 1740 | 0 | 2292 | 2423 | 94.6% |
| ov_SC06_000 | 2356 | 1747 | 0 | 2359 | 2691 | 87.7% |
| ov_SC06_006 | 2308 | 1738 | 0 | 2309 | 2511 | 92.0% |
| ov_SC06_008 | 2328 | 1740 | 0 | 2334 | 2542 | 91.8% |
| ov_SC06_010 | 2308 | 1738 | 0 | 2313 | 2517 | 91.9% |
| ov_SC06_011 | 2296 | 1738 | 0 | 2300 | 2468 | 93.2% |
| ov_SC06_013 | 2290 | 1738 | 0 | 2291 | 2425 | 94.5% |
| ov_SC06_014 | 2296 | 1738 | 0 | 2298 | 2453 | 93.7% |
| ov_SC06_015 | 2293 | 1738 | 0 | 2293 | 2421 | 94.7% |
| ov_SC06_016 | 2311 | 1738 | 0 | 2313 | 2549 | 90.7% |
| ov_SC06_018 | 2322 | 1740 | 0 | 2329 | 2665 | 87.4% |
| ov_SC06_020 | 2300 | 1740 | 0 | 2301 | 2518 | 91.4% |
| ov_SC06_022 | 2319 | 1738 | 0 | 2327 | 2642 | 88.1% |
| ov_SC06_024 | 2329 | 1738 | 0 | 2335 | 2667 | 87.6% |
| ov_SC06_025 | 2313 | 1738 | 0 | 2318 | 2572 | 90.1% |
| ov_SC06_027 | 2278 | 1738 | 0 | 2279 | 2408 | 94.6% |
| ov_SC06_029 | 2339 | 1738 | 0 | 2351 | 2662 | 88.3% |
| ov_SC06_030 | 2292 | 1738 | 0 | 2292 | 2456 | 93.3% |
| ov_SC06_032 | 2314 | 1739 | 0 | 2321 | 2658 | 87.3% |
| ov_SC06_033 | 2316 | 1739 | 0 | 2323 | 2631 | 88.3% |
| ov_SC07_000 | 2307 | 1742 | 0 | 2309 | 2521 | 91.6% |
| ov_SC07_001 | 2291 | 1738 | 0 | 2293 | 2454 | 93.4% |
| ov_SC07_002 | 2319 | 1738 | 0 | 2323 | 2579 | 90.1% |
| ov_SC07_006 | 2089 | 1555 | 0 | 2169 | 2456 | 88.3% |
| ov_SC07_007 | 2084 | 1586 | 0 | 2168 | 2613 | 83.0% |
| ov_SC07_008 | 2276 | 1738 | 0 | 2276 | 2386 | 95.4% |
| ov_SC07_009 | 2285 | 1738 | 0 | 2287 | 2430 | 94.1% |
| ov_SC07_010 | 2118 | 1608 | 0 | 2201 | 2524 | 87.2% |
| ov_SC07_011 | 2084 | 1585 | 0 | 2164 | 2449 | 88.4% |