Files
BFM-decomp/docs/progress.fleet.md
T
Drew T 62042f65ca fix(phase-30 S11): multi-line-comment blindness in dedup_propagate; func_8012A598 x138
Fleet 96.06 -> 96.10% fn-count / 93.7% instr / 88.0% distinct; dedup 1907 -> 1908
groups, 0 failed, C1 240807/240807. R22 clean-fleet: 140 passed, 0 failed of 140.

func_8012A598 (3,288 templatable ins) was being written off as CARRY-FIXABLE.
It took TWO fixes; either alone leaves it skipped.

1. TOOL (R33) — find_site's preamble backscan. The SESSION-18 fix handled blank,
   `//`, and SINGLE-LINE `/* … */` lines, but a MULTI-LINE block comment still
   halted the walk: its middle lines start with `*` and its last line ends `*/`
   without starting `/*`. So the three externs above the body were dropped and
   the body then failed compiles_standalone on now-undeclared data. This is the
   §134 multi-line-blindness class — S6b fixed the identical shape three times in
   family_remap (D1/D2/D5) and this copy was never reached.

   Fixed by deciding skippability on `cdecl._mask` — the project's ONE masking
   oracle — instead of on line syntax: it subsumes every comment form at once and
   cannot be fooled by a `/*` inside a string, with an R32 assertion on the
   length-preservation invariant it rests on. Strictly monotone (it can only
   carry MORE preamble), and dedup_propagate is a byte-gate feeder, so a bug here
   can fail to bank but never falsely bank.

2. EXEMPLAR — the body also declared a draft-local `struct BigCopy164` tag, which
   the tool refuses by design (two macros defining one tag would redefine it in a
   single TU). The shared `struct BigCopy` (engine_types.h L312) is the identical
   layout and is ALREADY used this exact way at engine_core.h:16158, so switching
   the exemplar to it is byte-neutral and drops the alias too.

Probed on ONE member before scaling (R37/S29): byte-identical 9052dc0e first try;
then 138 overlays byte-identical.

PROPAGATE head accounting after this: 7,398 of 18,545 ins banked (func_80147364
4,110 + func_8012A598 3,288). Still open, each with a NAMED cause and none yet
diagnosed against a build: func_8012f274 (3,973, dropped), func_8016ba68 (3,886,
4/138), func_801466f0 (3,288, the S6b D4 wrapped-alias gap).
2026-08-03 23:53:50 -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: 339914 / 353721 = 96.10% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 12314568 / 13141652 = 93.7% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 4961017 / 5634875 = 88.0% (77550/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: 12314132 / 13081451 = 94.1%)

FLEET REAL substantive : 338059 (of which dedup-shared 240733 via 1908 groups / 240807 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) FLEET INCLUDE_ASM stubs : 13800 FLEET matchable : 353721

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 2379 1750 0 2379 2403 99.0%
ov_SC01_001 2387 1751 0 2389 2466 96.9%
ov_SC01_004 2381 1742 0 2382 2414 98.7%
ov_SC01_005 2411 1765 0 2411 2503 96.3%
ov_SC01_006 2411 1765 0 2411 2503 96.3%
ov_SC01_008 2381 1742 0 2383 2426 98.2%
ov_SC01_009 2407 1743 0 2408 2507 96.1%
ov_SC01_074 2386 1743 0 2388 2425 98.5%
ov_SC01_077 2537 1709 0 2539 2586 98.2%
ov_SC01_080 2414 1746 0 2414 2512 96.1%
ov_SC01_084 2439 1751 0 2444 2579 94.8%
ov_SC02_000 2504 1790 0 2504 2683 93.3%
ov_SC02_003 2504 1790 0 2504 2683 93.3%
ov_SC02_004 2379 1746 0 2379 2401 99.1%
ov_SC02_005 2526 1742 0 2536 2927 86.6%
ov_SC02_011 2609 1749 0 2620 2893 90.6%
ov_SC02_015 2390 1748 0 2390 2414 99.0%
ov_SC02_016 2471 1748 0 2474 2545 97.2%
ov_SC02_017 2539 1748 0 2547 2732 93.2%
ov_SC02_021 2395 1748 0 2395 2437 98.3%
ov_SC02_026 2486 1746 0 2492 2572 96.9%
ov_SC02_027 2543 1746 0 2552 2692 94.8%
ov_SC02_028 2548 1746 0 2558 2701 94.7%
ov_SC02_031 2482 1747 0 2487 2562 97.1%
ov_SC02_035 2470 1746 0 2473 2520 98.1%
ov_SC02_039 2384 1746 0 2384 2416 98.7%
ov_SC02_041 2461 1746 0 2464 2561 96.2%
ov_SC03_001 2647 1747 0 2664 2869 92.9%
ov_SC03_002 2523 1751 0 2538 2631 96.5%
ov_SC03_003 2388 1746 0 2389 2423 98.6%
ov_SC03_006 2537 1752 0 2546 2767 92.0%
ov_SC03_007 2451 1746 0 2455 2623 93.6%
ov_SC03_010 2404 1746 0 2404 2471 97.3%
ov_SC03_011 2406 1746 0 2412 2527 95.4%
ov_SC03_012 2378 1746 0 2379 2406 98.9%
ov_SC03_013 2410 1746 0 2410 2493 96.7%
ov_SC03_014 2557 1774 0 2557 2685 95.2%
ov_SC03_015 2557 1774 0 2557 2685 95.2%
ov_SC03_023 2390 1746 0 2391 2435 98.2%
ov_SC03_024 2499 1751 0 2506 2641 94.9%
ov_SC03_028 2447 1746 0 2451 2664 92.0%
ov_SC03_029 2490 1748 0 2500 2644 94.6%
ov_SC03_030 2408 1751 0 2410 2495 96.6%
ov_SC03_031 2437 1746 0 2440 2514 97.1%
ov_SC03_089 2495 1751 0 2502 2581 96.9%
ov_SC03_090 2505 1751 0 2513 2625 95.7%
ov_SC03_091 2519 1746 0 2527 2640 95.7%
ov_SC03_092 2488 1751 0 2500 2587 96.6%
ov_SC03_093 2502 1746 0 2506 2563 97.8%
ov_SC03_094 2486 1746 0 2492 2577 96.7%
ov_SC03_095 2418 1746 0 2421 2474 97.9%
ov_SC03_096 2415 1746 0 2418 2465 98.1%
ov_SC03_097 2509 1746 0 2516 2603 96.7%
ov_SC03_098 2491 1746 0 2494 2541 98.2%
ov_SC03_099 2472 1746 0 2475 2504 98.8%
ov_SC03_100 2507 1746 0 2511 2539 98.9%
ov_SC03_101 2467 1751 0 2471 2528 97.7%
ov_SC03_102 2456 1746 0 2459 2492 98.7%
ov_SC03_103 2479 1748 0 2482 2510 98.9%
ov_SC03_104 2524 1751 0 2531 2616 96.8%
ov_SC03_105 2432 1746 0 2439 2597 93.9%
ov_SC03_108 2387 1746 0 2387 2443 97.7%
ov_SC03_109 2397 1746 0 2399 2424 99.0%
ov_SC03_110 2429 1746 0 2429 2468 98.4%
ov_SC03_111 2459 1746 0 2462 2510 98.1%
ov_SC03_112 2420 1748 0 2422 2526 95.9%
ov_SC03_113 2421 1748 0 2424 2468 98.2%
ov_SC03_114 2379 1746 0 2381 2415 98.6%
ov_SC03_115 2420 1746 0 2422 2472 98.0%
ov_SC03_116 2387 1746 0 2390 2438 98.0%
ov_SC03_117 2455 1746 0 2461 2557 96.2%
ov_SC03_118 2525 1770 0 2526 2685 94.1%
ov_SC03_119 2521 1770 0 2522 2685 93.9%
ov_SC03_121 2393 1746 0 2396 2459 97.4%
ov_SC03_124 2557 1742 0 2577 2741 94.0%
ov_SC03_125 2510 1746 0 2522 2588 97.4%
ov_SC03_126 2389 1748 0 2389 2423 98.6%
ov_SC04_000 2462 1750 0 2471 2546 97.1%
ov_SC04_002 2489 1746 0 2493 2636 94.6%
ov_SC04_003 2426 1746 0 2430 2502 97.1%
ov_SC04_004 2459 1746 0 2461 2558 96.2%
ov_SC04_005 2483 1746 0 2489 2612 95.3%
ov_SC04_006 2419 1746 0 2421 2454 98.7%
ov_SC04_007 2477 1746 0 2481 2569 96.6%
ov_SC04_008 2390 1746 0 2390 2415 99.0%
ov_SC04_009 2416 1746 0 2419 2441 99.1%
ov_SC04_010 2392 1746 0 2393 2419 98.9%
ov_SC04_011 2503 1751 0 2509 2803 89.5%
ov_SC04_012 2387 1746 0 2388 2420 98.7%
ov_SC04_015 2515 1747 0 2526 2611 96.7%
ov_SC04_016 2390 1746 0 2392 2440 98.0%
ov_SC04_018 2659 1782 0 2659 2857 93.1%
ov_SC04_019 2651 1782 0 2651 2857 92.8%
ov_SC04_020 2497 1746 0 2509 2567 97.7%
ov_SC04_021 2389 1748 0 2389 2423 98.6%
ov_SC05_000 2396 1750 0 2399 2422 99.1%
ov_SC05_001 2464 1746 0 2469 2574 95.9%
ov_SC05_002 2419 1746 0 2422 2442 99.2%
ov_SC05_003 2400 1746 0 2401 2481 96.8%
ov_SC05_004 2410 1746 0 2412 2464 97.9%
ov_SC05_005 2426 1751 0 2427 2491 97.4%
ov_SC05_006 2412 1746 0 2412 2430 99.3%
ov_SC05_007 2419 1746 0 2424 2482 97.7%
ov_SC05_008 2432 1746 0 2434 2543 95.7%
ov_SC05_009 2397 1746 0 2401 2438 98.5%
ov_SC05_010 2435 1746 0 2439 2588 94.2%
ov_SC05_011 2386 1746 0 2387 2409 99.1%
ov_SC05_017 2630 1743 0 2641 2842 92.9%
ov_SC05_018 2526 1746 0 2539 2673 95.0%
ov_SC05_019 2389 1748 0 2389 2423 98.6%
ov_SC06_000 2513 1755 0 2516 2691 93.5%
ov_SC06_006 2411 1746 0 2412 2511 96.1%
ov_SC06_008 2465 1748 0 2471 2542 97.2%
ov_SC06_010 2439 1746 0 2444 2517 97.1%
ov_SC06_011 2403 1746 0 2407 2468 97.5%
ov_SC06_013 2393 1746 0 2394 2425 98.7%
ov_SC06_014 2404 1746 0 2406 2453 98.1%
ov_SC06_015 2398 1746 0 2398 2421 99.0%
ov_SC06_016 2440 1746 0 2442 2549 95.8%
ov_SC06_018 2466 1748 0 2473 2665 92.8%
ov_SC06_020 2427 1748 0 2428 2518 96.4%
ov_SC06_022 2453 1746 0 2461 2642 93.1%
ov_SC06_024 2472 1746 0 2478 2667 92.9%
ov_SC06_025 2441 1746 0 2446 2572 95.1%
ov_SC06_027 2381 1746 0 2382 2408 98.9%
ov_SC06_029 2462 1746 0 2474 2662 92.9%
ov_SC06_030 2401 1746 0 2401 2456 97.8%
ov_SC06_032 2459 1747 0 2466 2658 92.8%
ov_SC06_033 2458 1747 0 2465 2631 93.7%
ov_SC07_000 2421 1750 0 2423 2521 96.1%
ov_SC07_001 2393 1746 0 2395 2454 97.6%
ov_SC07_002 2446 1746 0 2450 2579 95.0%
ov_SC07_006 2305 1571 0 2385 2456 97.1%
ov_SC07_007 2323 1603 0 2407 2613 92.1%
ov_SC07_008 2375 1746 0 2375 2386 99.5%
ov_SC07_009 2387 1746 0 2389 2430 98.3%
ov_SC07_010 2304 1624 0 2387 2524 94.6%
ov_SC07_011 2324 1602 0 2404 2449 98.2%