Files
BFM-decomp/docs/progress.fleet.md
T
Drew T a4bc49a23d feat(phase-30 S8): the x10-99 band closes 23/23; §137 makes REGALLOC-PERM arithmetic, not a permuter job
- S8-3 (23 fresh x10-99 families, 121-328 ins — the hardest band this session): draft 16/23 ->
  capture (1 PLUMBING / 6 DIFF) -> reconcile 1/1 -> redraft 6/6 => **23/23 (100%)**.
  Propagated 206 + 81 = 287 member-matches across 80+54 overlays. R22 clean-fleet 140/140.
  FLEET 95.97% fn / 93.4% instr / 87.5% distinct (77,404 uniq); dedup 1905/0; 0 NON_MATCHING.
- §136b CLOSES AT 15/15 — no function ledgered "genuine byte-DIFF" survived a redraft, all session.
- §137 (NEW, the session's most reusable result): REGALLOC-PERM — a clean 2-register swap — is a
  TWO-COMPILE ARITHMETIC PROBLEM. global.c:allocno_compare ranks by floor_log2(R)*R/L*1e4*size;
  read R and L out of `cc1 -dl -dg` for BOTH contenders AND their ranked neighbours to get the
  admissible priority WINDOW, then place a zero-byte `__asm__ __volatile__("" ::"r"(v))` so L lands
  inside it. func_801833F0: contenders ONE unit apart (1297 vs 1296), window (1228,1296), five
  placements probed, only L=219 -> pri 1232 worked. R and L are FORCED BY THE EMITTED CODE (L is
  recomputed post-sched1), which is exactly why source-reordering is a dead end for this class.
  Converts a class the permuter banked 0 from all session into a deterministic calculation.
  Companion: floor_log2 makes ref-count a STEP function (5/6/7 refs are worthless, you must reach 8)
  — func_8017EFA8 closed 30 register-name mismatches by taking a pseudo 4 refs -> 8 with a dead read.
- §136j — the failure MIX FLIPS WITH SIZE: <=120 ins fails ~70% on declarations; 121-328 ins fails
  86% on genuine codegen. Budget reconcile for the small band, redraft for the big one — and do NOT
  read 70% on a big-function wave as a broken pipeline; that is the expected shape.
- §137a — a gate verdict has a TIMESTAMP. Two "DIFF" ledger entries were STALE (draft rewritten 28
  min after the gate ran, never re-gated); both were already byte-perfect. Compare verdict time to
  draft mtime before redrafting. Plus two offline oracles an agent built: a FULL RELOCATION RESOLVE
  (catches wrong jal/%hi/%lo targets that match_one's mask hides) and a COLLATERAL CHECK (whole-TU
  objdump with/without splice). Together they discriminate all three causes of "match_one says MATCH
  but the overlay SHA differs" without running make.
- §136f addendum — the collider is often an already-banked SIBLING BELOW the splice; locate it by
  arithmetic (draft grows the file N lines, so TU line L reports at L+N).
- cookbook-index 380 -> 382 sections.
2026-08-03 16:25:06 -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: 339450 / 353721 = 95.97% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12271975 / 13141652 = 93.4% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 4930696 / 5634875 = 87.5% (77404/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: 12271539 / 13081451 = 93.8%)
FLEET REAL substantive : 337595 (of which dedup-shared 240422 via 1905 groups / 240496 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 14264
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 | 2377 | 1748 | 0 | 2377 | 2403 | 98.9% |
| ov_SC01_001 | 2385 | 1749 | 0 | 2387 | 2466 | 96.8% |
| ov_SC01_004 | 2379 | 1740 | 0 | 2380 | 2414 | 98.6% |
| ov_SC01_005 | 2409 | 1763 | 0 | 2409 | 2503 | 96.2% |
| ov_SC01_006 | 2409 | 1763 | 0 | 2409 | 2503 | 96.2% |
| ov_SC01_008 | 2379 | 1740 | 0 | 2381 | 2426 | 98.1% |
| ov_SC01_009 | 2405 | 1741 | 0 | 2406 | 2507 | 96.0% |
| ov_SC01_074 | 2383 | 1741 | 0 | 2385 | 2425 | 98.4% |
| ov_SC01_077 | 2536 | 1707 | 0 | 2538 | 2586 | 98.1% |
| ov_SC01_080 | 2412 | 1744 | 0 | 2412 | 2512 | 96.0% |
| ov_SC01_084 | 2437 | 1749 | 0 | 2442 | 2579 | 94.7% |
| ov_SC02_000 | 2500 | 1788 | 0 | 2500 | 2683 | 93.2% |
| ov_SC02_003 | 2500 | 1788 | 0 | 2500 | 2683 | 93.2% |
| ov_SC02_004 | 2377 | 1744 | 0 | 2377 | 2401 | 99.0% |
| ov_SC02_005 | 2524 | 1740 | 0 | 2534 | 2927 | 86.6% |
| ov_SC02_011 | 2605 | 1747 | 0 | 2616 | 2893 | 90.4% |
| ov_SC02_015 | 2388 | 1746 | 0 | 2388 | 2414 | 98.9% |
| ov_SC02_016 | 2468 | 1746 | 0 | 2471 | 2545 | 97.1% |
| ov_SC02_017 | 2536 | 1746 | 0 | 2544 | 2732 | 93.1% |
| ov_SC02_021 | 2393 | 1746 | 0 | 2393 | 2437 | 98.2% |
| ov_SC02_026 | 2483 | 1744 | 0 | 2489 | 2572 | 96.8% |
| ov_SC02_027 | 2540 | 1744 | 0 | 2549 | 2692 | 94.7% |
| ov_SC02_028 | 2545 | 1744 | 0 | 2555 | 2701 | 94.6% |
| ov_SC02_031 | 2480 | 1745 | 0 | 2485 | 2562 | 97.0% |
| ov_SC02_035 | 2467 | 1744 | 0 | 2470 | 2520 | 98.0% |
| ov_SC02_039 | 2382 | 1744 | 0 | 2382 | 2416 | 98.6% |
| ov_SC02_041 | 2458 | 1744 | 0 | 2461 | 2561 | 96.1% |
| ov_SC03_001 | 2641 | 1745 | 0 | 2658 | 2869 | 92.6% |
| ov_SC03_002 | 2519 | 1749 | 0 | 2534 | 2631 | 96.3% |
| ov_SC03_003 | 2386 | 1744 | 0 | 2387 | 2423 | 98.5% |
| ov_SC03_006 | 2534 | 1750 | 0 | 2543 | 2767 | 91.9% |
| ov_SC03_007 | 2449 | 1744 | 0 | 2453 | 2623 | 93.5% |
| ov_SC03_010 | 2402 | 1744 | 0 | 2402 | 2471 | 97.2% |
| ov_SC03_011 | 2404 | 1744 | 0 | 2410 | 2527 | 95.4% |
| ov_SC03_012 | 2376 | 1744 | 0 | 2377 | 2406 | 98.8% |
| ov_SC03_013 | 2408 | 1744 | 0 | 2408 | 2493 | 96.6% |
| ov_SC03_014 | 2553 | 1772 | 0 | 2553 | 2685 | 95.1% |
| ov_SC03_015 | 2554 | 1772 | 0 | 2554 | 2685 | 95.1% |
| ov_SC03_023 | 2388 | 1744 | 0 | 2389 | 2435 | 98.1% |
| ov_SC03_024 | 2497 | 1749 | 0 | 2504 | 2641 | 94.8% |
| ov_SC03_028 | 2443 | 1744 | 0 | 2447 | 2664 | 91.9% |
| ov_SC03_029 | 2486 | 1746 | 0 | 2496 | 2644 | 94.4% |
| ov_SC03_030 | 2405 | 1749 | 0 | 2407 | 2495 | 96.5% |
| ov_SC03_031 | 2435 | 1744 | 0 | 2438 | 2514 | 97.0% |
| ov_SC03_089 | 2492 | 1749 | 0 | 2499 | 2581 | 96.8% |
| ov_SC03_090 | 2501 | 1749 | 0 | 2509 | 2625 | 95.6% |
| ov_SC03_091 | 2515 | 1744 | 0 | 2523 | 2640 | 95.6% |
| ov_SC03_092 | 2486 | 1749 | 0 | 2498 | 2587 | 96.6% |
| ov_SC03_093 | 2500 | 1744 | 0 | 2504 | 2563 | 97.7% |
| ov_SC03_094 | 2483 | 1744 | 0 | 2489 | 2577 | 96.6% |
| ov_SC03_095 | 2416 | 1744 | 0 | 2419 | 2474 | 97.8% |
| ov_SC03_096 | 2413 | 1744 | 0 | 2416 | 2465 | 98.0% |
| ov_SC03_097 | 2507 | 1744 | 0 | 2514 | 2603 | 96.6% |
| ov_SC03_098 | 2488 | 1744 | 0 | 2491 | 2541 | 98.0% |
| ov_SC03_099 | 2469 | 1744 | 0 | 2472 | 2504 | 98.7% |
| ov_SC03_100 | 2504 | 1744 | 0 | 2508 | 2539 | 98.8% |
| ov_SC03_101 | 2464 | 1749 | 0 | 2468 | 2528 | 97.6% |
| ov_SC03_102 | 2453 | 1744 | 0 | 2456 | 2492 | 98.6% |
| ov_SC03_103 | 2476 | 1746 | 0 | 2479 | 2510 | 98.8% |
| ov_SC03_104 | 2521 | 1749 | 0 | 2528 | 2616 | 96.6% |
| ov_SC03_105 | 2428 | 1744 | 0 | 2435 | 2597 | 93.8% |
| ov_SC03_108 | 2385 | 1744 | 0 | 2385 | 2443 | 97.6% |
| ov_SC03_109 | 2395 | 1744 | 0 | 2397 | 2424 | 98.9% |
| ov_SC03_110 | 2427 | 1744 | 0 | 2427 | 2468 | 98.3% |
| ov_SC03_111 | 2454 | 1744 | 0 | 2457 | 2510 | 97.9% |
| ov_SC03_112 | 2416 | 1746 | 0 | 2418 | 2526 | 95.7% |
| ov_SC03_113 | 2417 | 1746 | 0 | 2420 | 2468 | 98.1% |
| ov_SC03_114 | 2376 | 1744 | 0 | 2378 | 2415 | 98.5% |
| ov_SC03_115 | 2418 | 1744 | 0 | 2420 | 2472 | 97.9% |
| ov_SC03_116 | 2385 | 1744 | 0 | 2388 | 2438 | 97.9% |
| ov_SC03_117 | 2451 | 1744 | 0 | 2457 | 2557 | 96.1% |
| ov_SC03_118 | 2520 | 1768 | 0 | 2521 | 2685 | 93.9% |
| ov_SC03_119 | 2516 | 1768 | 0 | 2517 | 2685 | 93.7% |
| ov_SC03_121 | 2391 | 1744 | 0 | 2394 | 2459 | 97.4% |
| ov_SC03_124 | 2552 | 1740 | 0 | 2572 | 2741 | 93.8% |
| ov_SC03_125 | 2506 | 1744 | 0 | 2518 | 2588 | 97.3% |
| ov_SC03_126 | 2387 | 1746 | 0 | 2387 | 2423 | 98.5% |
| ov_SC04_000 | 2460 | 1748 | 0 | 2469 | 2546 | 97.0% |
| ov_SC04_002 | 2486 | 1744 | 0 | 2490 | 2636 | 94.5% |
| ov_SC04_003 | 2424 | 1744 | 0 | 2428 | 2502 | 97.0% |
| ov_SC04_004 | 2456 | 1744 | 0 | 2458 | 2558 | 96.1% |
| ov_SC04_005 | 2481 | 1744 | 0 | 2487 | 2612 | 95.2% |
| ov_SC04_006 | 2417 | 1744 | 0 | 2419 | 2454 | 98.6% |
| ov_SC04_007 | 2475 | 1744 | 0 | 2479 | 2569 | 96.5% |
| ov_SC04_008 | 2388 | 1744 | 0 | 2388 | 2415 | 98.9% |
| ov_SC04_009 | 2414 | 1744 | 0 | 2417 | 2441 | 99.0% |
| ov_SC04_010 | 2390 | 1744 | 0 | 2391 | 2419 | 98.8% |
| ov_SC04_011 | 2498 | 1749 | 0 | 2504 | 2803 | 89.3% |
| ov_SC04_012 | 2385 | 1744 | 0 | 2386 | 2420 | 98.6% |
| ov_SC04_015 | 2512 | 1745 | 0 | 2523 | 2611 | 96.6% |
| ov_SC04_016 | 2385 | 1744 | 0 | 2387 | 2440 | 97.8% |
| ov_SC04_018 | 2652 | 1780 | 0 | 2652 | 2857 | 92.8% |
| ov_SC04_019 | 2644 | 1780 | 0 | 2644 | 2857 | 92.5% |
| ov_SC04_020 | 2493 | 1744 | 0 | 2505 | 2567 | 97.6% |
| ov_SC04_021 | 2387 | 1746 | 0 | 2387 | 2423 | 98.5% |
| ov_SC05_000 | 2394 | 1748 | 0 | 2397 | 2422 | 99.0% |
| ov_SC05_001 | 2462 | 1744 | 0 | 2467 | 2574 | 95.8% |
| ov_SC05_002 | 2417 | 1744 | 0 | 2420 | 2442 | 99.1% |
| ov_SC05_003 | 2397 | 1744 | 0 | 2398 | 2481 | 96.7% |
| ov_SC05_004 | 2406 | 1744 | 0 | 2408 | 2464 | 97.7% |
| ov_SC05_005 | 2423 | 1749 | 0 | 2424 | 2491 | 97.3% |
| ov_SC05_006 | 2410 | 1744 | 0 | 2410 | 2430 | 99.2% |
| ov_SC05_007 | 2417 | 1744 | 0 | 2422 | 2482 | 97.6% |
| ov_SC05_008 | 2430 | 1744 | 0 | 2432 | 2543 | 95.6% |
| ov_SC05_009 | 2395 | 1744 | 0 | 2399 | 2438 | 98.4% |
| ov_SC05_010 | 2432 | 1744 | 0 | 2436 | 2588 | 94.1% |
| ov_SC05_011 | 2384 | 1744 | 0 | 2385 | 2409 | 99.0% |
| ov_SC05_017 | 2624 | 1741 | 0 | 2635 | 2842 | 92.7% |
| ov_SC05_018 | 2523 | 1744 | 0 | 2536 | 2673 | 94.9% |
| ov_SC05_019 | 2387 | 1746 | 0 | 2387 | 2423 | 98.5% |
| ov_SC06_000 | 2510 | 1753 | 0 | 2513 | 2691 | 93.4% |
| ov_SC06_006 | 2408 | 1744 | 0 | 2409 | 2511 | 95.9% |
| ov_SC06_008 | 2459 | 1746 | 0 | 2465 | 2542 | 97.0% |
| ov_SC06_010 | 2433 | 1744 | 0 | 2438 | 2517 | 96.9% |
| ov_SC06_011 | 2401 | 1744 | 0 | 2405 | 2468 | 97.4% |
| ov_SC06_013 | 2391 | 1744 | 0 | 2392 | 2425 | 98.6% |
| ov_SC06_014 | 2402 | 1744 | 0 | 2404 | 2453 | 98.0% |
| ov_SC06_015 | 2396 | 1744 | 0 | 2396 | 2421 | 99.0% |
| ov_SC06_016 | 2438 | 1744 | 0 | 2440 | 2549 | 95.7% |
| ov_SC06_018 | 2454 | 1746 | 0 | 2461 | 2665 | 92.3% |
| ov_SC06_020 | 2422 | 1746 | 0 | 2423 | 2518 | 96.2% |
| ov_SC06_022 | 2443 | 1744 | 0 | 2451 | 2642 | 92.8% |
| ov_SC06_024 | 2462 | 1744 | 0 | 2468 | 2667 | 92.5% |
| ov_SC06_025 | 2439 | 1744 | 0 | 2444 | 2572 | 95.0% |
| ov_SC06_027 | 2379 | 1744 | 0 | 2380 | 2408 | 98.8% |
| ov_SC06_029 | 2459 | 1744 | 0 | 2471 | 2662 | 92.8% |
| ov_SC06_030 | 2399 | 1744 | 0 | 2399 | 2456 | 97.7% |
| ov_SC06_032 | 2446 | 1745 | 0 | 2453 | 2658 | 92.3% |
| ov_SC06_033 | 2448 | 1745 | 0 | 2455 | 2631 | 93.3% |
| ov_SC07_000 | 2419 | 1748 | 0 | 2421 | 2521 | 96.0% |
| ov_SC07_001 | 2391 | 1744 | 0 | 2393 | 2454 | 97.5% |
| ov_SC07_002 | 2443 | 1744 | 0 | 2447 | 2579 | 94.9% |
| ov_SC07_006 | 2296 | 1560 | 0 | 2376 | 2456 | 96.7% |
| ov_SC07_007 | 2313 | 1592 | 0 | 2397 | 2613 | 91.7% |
| ov_SC07_008 | 2373 | 1744 | 0 | 2373 | 2386 | 99.5% |
| ov_SC07_009 | 2382 | 1744 | 0 | 2384 | 2430 | 98.1% |
| ov_SC07_010 | 2295 | 1614 | 0 | 2378 | 2524 | 94.2% |
| ov_SC07_011 | 2314 | 1591 | 0 | 2394 | 2449 | 97.8% |