Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 970559423d feat(phase-29): T77 — wire the callee-decl lever into family_sweep; func_80173A60 0/135 -> 135/135
Item 1. The T76 diagnosis was right and the fix was a lever we already owned. cast_call_sites
(§17a-1/§20) handles the callee-conflict class and lived ONLY in gate_stage, which the family sweep
deliberately does not use — the THIRD instance this session of a lever unreachable from the path that
needs it (T56 data-decl unreachable, T57 function-decl off-by-default, now T77 callee).

  the 5 byte-identical families : 0/682 -> 135/682
  func_80173A60 specifically    : 0/135 -> 135/135

Wired after scope_data_fix (orthogonal axes: data vs callee), default ON with --no-cast-callees. Two
details that matter: the canonical map is built from the TARGET sibling's TU via cpp
(canonical_map(ov, src_file=tu) -> cdecl.tu_scope) so it sees MACRO-INJECTED declarations — a
raw-text scan returns nothing for exactly the callees that conflict (§51g LAW 7) — and it is read
AFTER any tu-scope edit is on disk.

THE OTHER FOUR STILL FAIL, different causes. And the next finding is already visible:
func_8012F40C's blocker is RotTransPers, a PsyQ LIBRARY symbol — a callee conflict the cast should
have handled. It did not, because cast_call_sites' canonical map keys on
re.fullmatch(r'func_[0-9A-Fa-f]{8}'), so NAMED PsyQ callees are structurally invisible to it. That is
a one-line predicate widening with ~270 members behind it (RotTransPers + ApplyMatrixSV families).

GATES: R22 clean-fleet 140 passed, 0 failed of 140; tools-health OK; dedup 1886/0; 0 NON_MATCHING.

METRICS: instr 86.6% -> 86.7% (+7,965 ins); fn-count 91.15% -> 91.19% (+135); distinct +0
(byte-identical — §111 predicted it).

cookbook §114 — the three decl axes, and "conflicting types for X: READ X".
2026-07-29 20:34:09 -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: 322567 / 353720 = 91.19% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 11387545 / 13141652 = 86.7% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4334529 / 5634875 = 76.9% (68196/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: 11387109 / 13081451 = 87.0%)

FLEET REAL substantive : 320712 (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 : 31146 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 2298 1742 0 2298 2403 95.6%
ov_SC01_001 2303 1743 0 2305 2466 93.5%
ov_SC01_004 2293 1734 0 2294 2414 95.0%
ov_SC01_005 2323 1757 0 2323 2503 92.8%
ov_SC01_006 2323 1757 0 2323 2503 92.8%
ov_SC01_008 2293 1734 0 2295 2426 94.6%
ov_SC01_009 2319 1735 0 2320 2507 92.5%
ov_SC01_074 2297 1735 0 2299 2425 94.8%
ov_SC01_077 2473 1702 0 2475 2585 95.7%
ov_SC01_080 2335 1738 0 2335 2512 93.0%
ov_SC01_084 2342 1738 0 2347 2579 91.0%
ov_SC02_000 2395 1773 0 2395 2683 89.3%
ov_SC02_003 2395 1773 0 2395 2683 89.3%
ov_SC02_004 2301 1738 0 2301 2401 95.8%
ov_SC02_005 2409 1734 0 2419 2927 82.6%
ov_SC02_011 2422 1741 0 2433 2893 84.1%
ov_SC02_015 2303 1740 0 2303 2414 95.4%
ov_SC02_016 2337 1740 0 2340 2545 91.9%
ov_SC02_017 2381 1740 0 2389 2732 87.4%
ov_SC02_021 2309 1740 0 2309 2437 94.7%
ov_SC02_026 2324 1738 0 2330 2572 90.6%
ov_SC02_027 2347 1738 0 2356 2692 87.5%
ov_SC02_028 2349 1738 0 2359 2701 87.3%
ov_SC02_031 2335 1739 0 2340 2562 91.3%
ov_SC02_035 2310 1738 0 2313 2520 91.8%
ov_SC02_039 2294 1738 0 2294 2416 95.0%
ov_SC02_041 2332 1738 0 2335 2561 91.2%
ov_SC03_001 2429 1739 0 2446 2869 85.3%
ov_SC03_002 2355 1743 0 2370 2631 90.1%
ov_SC03_003 2304 1738 0 2305 2423 95.1%
ov_SC03_006 2372 1744 0 2381 2767 86.0%
ov_SC03_007 2349 1738 0 2353 2623 89.7%
ov_SC03_010 2312 1738 0 2312 2471 93.6%
ov_SC03_011 2318 1738 0 2324 2527 92.0%
ov_SC03_012 2296 1738 0 2297 2406 95.5%
ov_SC03_013 2317 1738 0 2317 2493 92.9%
ov_SC03_014 2375 1763 0 2375 2685 88.5%
ov_SC03_015 2375 1763 0 2375 2685 88.5%
ov_SC03_023 2303 1738 0 2304 2435 94.6%
ov_SC03_024 2363 1743 0 2370 2641 89.7%
ov_SC03_028 2343 1738 0 2347 2664 88.1%
ov_SC03_029 2345 1740 0 2355 2644 89.1%
ov_SC03_030 2318 1743 0 2320 2495 93.0%
ov_SC03_031 2314 1738 0 2317 2514 92.2%
ov_SC03_089 2331 1738 0 2338 2581 90.6%
ov_SC03_090 2332 1738 0 2340 2625 89.1%
ov_SC03_091 2335 1738 0 2343 2640 88.8%
ov_SC03_092 2345 1738 0 2357 2587 91.1%
ov_SC03_093 2321 1738 0 2325 2563 90.7%
ov_SC03_094 2316 1738 0 2322 2577 90.1%
ov_SC03_095 2306 1738 0 2309 2474 93.3%
ov_SC03_096 2306 1738 0 2309 2465 93.7%
ov_SC03_097 2336 1738 0 2343 2603 90.0%
ov_SC03_098 2314 1738 0 2317 2541 91.2%
ov_SC03_099 2307 1738 0 2310 2504 92.3%
ov_SC03_100 2317 1738 0 2321 2539 91.4%
ov_SC03_101 2317 1738 0 2321 2528 91.8%
ov_SC03_102 2310 1738 0 2313 2492 92.8%
ov_SC03_103 2313 1740 0 2316 2510 92.3%
ov_SC03_104 2339 1738 0 2346 2616 89.7%
ov_SC03_105 2330 1738 0 2337 2597 90.0%
ov_SC03_108 2297 1738 0 2297 2443 94.0%
ov_SC03_109 2301 1738 0 2303 2424 95.0%
ov_SC03_110 2305 1738 0 2305 2468 93.4%
ov_SC03_111 2316 1738 0 2319 2510 92.4%
ov_SC03_112 2312 1740 0 2314 2526 91.6%
ov_SC03_113 2305 1740 0 2308 2468 93.5%
ov_SC03_114 2294 1738 0 2296 2415 95.1%
ov_SC03_115 2311 1738 0 2313 2472 93.6%
ov_SC03_116 2302 1738 0 2305 2438 94.5%
ov_SC03_117 2329 1738 0 2335 2557 91.3%
ov_SC03_118 2375 1762 0 2376 2685 88.5%
ov_SC03_119 2374 1762 0 2375 2685 88.5%
ov_SC03_121 2309 1738 0 2312 2459 94.0%
ov_SC03_124 2387 1734 0 2407 2741 87.8%
ov_SC03_125 2343 1738 0 2355 2588 91.0%
ov_SC03_126 2306 1740 0 2306 2423 95.2%
ov_SC04_000 2322 1742 0 2331 2546 91.6%
ov_SC04_002 2341 1738 0 2345 2636 89.0%
ov_SC04_003 2317 1738 0 2321 2502 92.8%
ov_SC04_004 2326 1738 0 2328 2558 91.0%
ov_SC04_005 2336 1738 0 2342 2612 89.7%
ov_SC04_006 2306 1738 0 2308 2454 94.1%
ov_SC04_007 2330 1738 0 2334 2569 90.9%
ov_SC04_008 2298 1738 0 2298 2415 95.2%
ov_SC04_009 2313 1738 0 2316 2441 94.9%
ov_SC04_010 2303 1738 0 2304 2419 95.2%
ov_SC04_011 2361 1738 0 2367 2803 84.4%
ov_SC04_012 2300 1738 0 2301 2420 95.1%
ov_SC04_015 2365 1739 0 2376 2611 91.0%
ov_SC04_016 2303 1738 0 2305 2440 94.5%
ov_SC04_018 2413 1773 0 2413 2857 84.5%
ov_SC04_019 2419 1773 0 2419 2857 84.7%
ov_SC04_020 2330 1738 0 2342 2567 91.2%
ov_SC04_021 2307 1740 0 2307 2423 95.2%
ov_SC05_000 2304 1742 0 2307 2422 95.3%
ov_SC05_001 2326 1738 0 2331 2574 90.6%
ov_SC05_002 2309 1738 0 2312 2442 94.7%
ov_SC05_003 2306 1738 0 2307 2481 93.0%
ov_SC05_004 2302 1738 0 2304 2464 93.5%
ov_SC05_005 2307 1738 0 2308 2491 92.7%
ov_SC05_006 2300 1738 0 2300 2430 94.7%
ov_SC05_007 2310 1738 0 2315 2482 93.3%
ov_SC05_008 2327 1738 0 2329 2543 91.6%
ov_SC05_009 2306 1738 0 2310 2438 94.7%
ov_SC05_010 2333 1738 0 2337 2588 90.3%
ov_SC05_011 2302 1738 0 2303 2409 95.6%
ov_SC05_017 2409 1735 0 2420 2842 85.2%
ov_SC05_018 2357 1738 0 2370 2673 88.7%
ov_SC05_019 2307 1740 0 2307 2423 95.2%
ov_SC06_000 2371 1747 0 2374 2691 88.2%
ov_SC06_006 2323 1738 0 2324 2511 92.6%
ov_SC06_008 2343 1740 0 2349 2542 92.4%
ov_SC06_010 2323 1738 0 2328 2517 92.5%
ov_SC06_011 2311 1738 0 2315 2468 93.8%
ov_SC06_013 2305 1738 0 2306 2425 95.1%
ov_SC06_014 2311 1738 0 2313 2453 94.3%
ov_SC06_015 2308 1738 0 2308 2421 95.3%
ov_SC06_016 2326 1738 0 2328 2549 91.3%
ov_SC06_018 2335 1740 0 2342 2665 87.9%
ov_SC06_020 2315 1740 0 2316 2518 92.0%
ov_SC06_022 2334 1738 0 2342 2642 88.6%
ov_SC06_024 2344 1738 0 2350 2667 88.1%
ov_SC06_025 2328 1738 0 2333 2572 90.7%
ov_SC06_027 2293 1738 0 2294 2408 95.3%
ov_SC06_029 2354 1738 0 2366 2662 88.9%
ov_SC06_030 2307 1738 0 2307 2456 93.9%
ov_SC06_032 2329 1739 0 2336 2658 87.9%
ov_SC06_033 2331 1739 0 2338 2631 88.9%
ov_SC07_000 2322 1742 0 2324 2521 92.2%
ov_SC07_001 2306 1738 0 2308 2454 94.1%
ov_SC07_002 2334 1738 0 2338 2579 90.7%
ov_SC07_006 2094 1555 0 2174 2456 88.5%
ov_SC07_007 2098 1586 0 2182 2613 83.5%
ov_SC07_008 2291 1738 0 2291 2386 96.0%
ov_SC07_009 2300 1738 0 2302 2430 94.7%
ov_SC07_010 2130 1608 0 2213 2524 87.7%
ov_SC07_011 2097 1585 0 2177 2449 88.9%