mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-05 17:03:23 -04:00
feat(phase-15): T5a — bulk-propagate 553 shared functions fleet-wide (3.82% -> 22.14%)
- dedup_propagate --auto-from ov_SC01_077: propagated 553 already-matched, self-contained shared engine functions across all 134 overlays, each byte-gated. 9 functions skipped (use 077-local struct types -> not mechanically liftable; honest, P9). One R22 CLEAN rebuild: 136/136 byte-identical. - fleet REAL 947 -> 74,527; byte-identical 13,132 -> 76,174 / 344,010 = 22.14%; 561 dedup groups, dedup-check 561 validated / 0 failed - tool hardening for fleet scale: registry SHORTHAND (vram + binaries; dedup.us.yaml ~4k lines vs ~77k verbose); per-overlay apply (one read/write per file); gate-only-changed; skip already-registered (additive/resumable); compile pre-filter (body must build with common.h alone); group_members() reader (both forms) in dedup_integrate + progress; progress _DEDUP_CACHE (fleet 6m -> 7s) - the first bulk attempt fail-closed-reverted on a local-typed body (byte-gate working) -> added the compile filter; cookbook 14a documents the 5 fleet-bulk lessons - ghidra/ churn NOT staged (R23)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -812,3 +812,26 @@ whole shared set; `--check-only` for a dry-run plan):
|
||||
- **Scale note (deferred until it bites):** `dedup.us.yaml` members are listed verbose (`{binary,vram,name}`).
|
||||
For the full 134-overlay × hundreds-of-functions bulk, switch to a `vram + binaries:[...]` shorthand (expanded by
|
||||
`dedup_integrate`/`progress.py`) before it becomes a 5-figure-line file.
|
||||
|
||||
### §14a The fleet bulk run (Phase 15 — `--auto-from`, 947 REAL → 74,527; 3.82% → 22.14% in one pass)
|
||||
|
||||
A measured **577 of `ov_SC01_077`'s matches are h_exact across all 134 overlays**; `dedup_propagate --auto-from
|
||||
ov_SC01_077` propagated **553** of them fleet-wide (each overlay byte-gated) in ~2 min. The 5 things that made
|
||||
the bulk work (each cost a real failure first):
|
||||
- **Only self-contained bodies are mechanically liftable.** A 077 match whose body names an overlay-LOCAL struct
|
||||
type (`SrcB964 *a0` — a harvest-invented type defined in 077.c, not common.h) compiles in 077 but FAILS in
|
||||
every other overlay (`parse error before '*'`, `a0 undeclared`). The first bulk attempt died on one and
|
||||
reverted all 134 (fail-closed, correct but wasteful). Fix: a **compile pre-filter** — `compiles_standalone(body)`
|
||||
builds the body with `common.h` only (cpp→cc1); skip if it fails. 9/562 were local-typed → skipped honestly (P9).
|
||||
These need their types shared too (a future enhancement); they are NOT a byte regression, just deferred.
|
||||
- **The registry shorthand is mandatory at this scale.** 553 groups × ~134 members verbose ≈ 77k lines; the
|
||||
`vram + binaries:[...]` shorthand keeps `dedup.us.yaml` at ~4k. `group_members()` (in `dedup_integrate`) is the
|
||||
single expander used by `dedup_integrate --check` and `progress.py`.
|
||||
- **Per-overlay apply, not per-(function,overlay).** Group targets by overlay → one read/write per file; stub
|
||||
lines replace 1:1 (no shift); the source overlay's inline defs splice by range in REVERSE line order. (Naive
|
||||
per-pair editing is 77k file-ops and minutes slower.)
|
||||
- **Skip already-registered + gate-only-changed.** `--auto-from` excludes addrs already in the registry (additive,
|
||||
resumable, never collides with an existing SETTER/engine_core share); only overlays that actually changed are
|
||||
rebuilt. Re-running tops up as more overlays onboard.
|
||||
- **`progress.py --fleet` parse cache.** `dedup_members` parsed the (now-large) registry once per binary (136×) —
|
||||
cache it once (`_DEDUP_CACHE`): fleet report 6m+ → ~7s.
|
||||
|
||||
+137
-137
@@ -3,148 +3,148 @@
|
||||
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
|
||||
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
|
||||
|
||||
FLEET REAL substantive : 947 (of which dedup-shared 72 via 8 groups / 72 instances)
|
||||
FLEET REAL substantive : 74527 (of which dedup-shared 74126 via 561 groups / 74126 instances)
|
||||
FLEET LINKED PsyQ objs : 959
|
||||
FLEET byte-identical : 13132 / 344010 = 3.82% (REAL+LINKED+empties)
|
||||
FLEET byte-identical : 76174 / 344010 = 22.14% (REAL+LINKED+empties)
|
||||
FLEET NON_MATCHING : 7 (0 in any default build — G4)
|
||||
FLEET INCLUDE_ASM stubs : 330871
|
||||
FLEET INCLUDE_ASM stubs : 267829
|
||||
FLEET matchable : 344010
|
||||
|
||||
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
|
||||
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
|
||||
| ov_SC01_000 | 4 | 4 | 0 | 83 | 2403 | 3.5% |
|
||||
| ov_SC01_001 | 4 | 4 | 0 | 85 | 2467 | 3.4% |
|
||||
| ov_SC01_004 | 0 | 0 | 0 | 76 | 2416 | 3.1% |
|
||||
| ov_SC01_005 | 7 | 7 | 0 | 89 | 2504 | 3.6% |
|
||||
| ov_SC01_006 | 7 | 7 | 0 | 89 | 2504 | 3.6% |
|
||||
| ov_SC01_008 | 0 | 0 | 0 | 77 | 2428 | 3.2% |
|
||||
| ov_SC01_009 | 0 | 0 | 0 | 76 | 2510 | 3.0% |
|
||||
| ov_SC01_074 | 0 | 0 | 0 | 77 | 2427 | 3.2% |
|
||||
| ov_SC01_077 | 704 | 4 | 0 | 785 | 2586 | 30.4% |
|
||||
| ov_SC01_080 | 0 | 0 | 0 | 79 | 2515 | 3.1% |
|
||||
| ov_SC01_084 | 0 | 0 | 0 | 84 | 2581 | 3.3% |
|
||||
| ov_SC02_000 | 4 | 4 | 0 | 90 | 2684 | 3.4% |
|
||||
| ov_SC02_003 | 4 | 4 | 0 | 90 | 2684 | 3.4% |
|
||||
| ov_SC02_004 | 0 | 0 | 0 | 79 | 2403 | 3.3% |
|
||||
| ov_SC02_005 | 0 | 0 | 0 | 85 | 2930 | 2.9% |
|
||||
| ov_SC02_011 | 0 | 0 | 0 | 91 | 2896 | 3.1% |
|
||||
| ov_SC02_015 | 0 | 0 | 0 | 79 | 2416 | 3.3% |
|
||||
| ov_SC02_016 | 0 | 0 | 0 | 82 | 2548 | 3.2% |
|
||||
| ov_SC02_017 | 0 | 0 | 0 | 87 | 2735 | 3.2% |
|
||||
| ov_SC02_021 | 0 | 0 | 0 | 79 | 2439 | 3.2% |
|
||||
| ov_SC02_026 | 0 | 0 | 0 | 85 | 2575 | 3.3% |
|
||||
| ov_SC02_027 | 0 | 0 | 0 | 88 | 2695 | 3.3% |
|
||||
| ov_SC02_028 | 0 | 0 | 0 | 89 | 2704 | 3.3% |
|
||||
| ov_SC02_031 | 0 | 0 | 0 | 85 | 2565 | 3.3% |
|
||||
| ov_SC02_035 | 0 | 0 | 0 | 82 | 2523 | 3.3% |
|
||||
| ov_SC02_039 | 0 | 0 | 0 | 79 | 2418 | 3.3% |
|
||||
| ov_SC02_041 | 0 | 0 | 0 | 82 | 2563 | 3.2% |
|
||||
| ov_SC03_001 | 4 | 4 | 0 | 97 | 2870 | 3.4% |
|
||||
| ov_SC03_002 | 4 | 4 | 0 | 99 | 2632 | 3.8% |
|
||||
| ov_SC03_003 | 0 | 0 | 0 | 80 | 2425 | 3.3% |
|
||||
| ov_SC03_006 | 4 | 4 | 0 | 92 | 2768 | 3.3% |
|
||||
| ov_SC03_007 | 0 | 0 | 0 | 83 | 2626 | 3.2% |
|
||||
| ov_SC03_010 | 0 | 0 | 0 | 79 | 2472 | 3.2% |
|
||||
| ov_SC03_011 | 0 | 0 | 0 | 85 | 2530 | 3.4% |
|
||||
| ov_SC03_012 | 0 | 0 | 0 | 80 | 2408 | 3.3% |
|
||||
| ov_SC03_013 | 0 | 0 | 0 | 79 | 2495 | 3.2% |
|
||||
| ov_SC03_014 | 0 | 0 | 0 | 89 | 2688 | 3.3% |
|
||||
| ov_SC03_015 | 0 | 0 | 0 | 89 | 2688 | 3.3% |
|
||||
| ov_SC03_023 | 0 | 0 | 0 | 80 | 2437 | 3.3% |
|
||||
| ov_SC03_024 | 0 | 0 | 0 | 91 | 2644 | 3.4% |
|
||||
| ov_SC03_028 | 0 | 0 | 0 | 83 | 2667 | 3.1% |
|
||||
| ov_SC03_029 | 0 | 0 | 0 | 89 | 2647 | 3.4% |
|
||||
| ov_SC03_030 | 0 | 0 | 0 | 81 | 2498 | 3.2% |
|
||||
| ov_SC03_031 | 0 | 0 | 0 | 83 | 2517 | 3.3% |
|
||||
| ov_SC03_089 | 0 | 0 | 0 | 86 | 2584 | 3.3% |
|
||||
| ov_SC03_090 | 0 | 0 | 0 | 87 | 2628 | 3.3% |
|
||||
| ov_SC03_091 | 0 | 0 | 0 | 87 | 2643 | 3.3% |
|
||||
| ov_SC03_092 | 0 | 0 | 0 | 91 | 2590 | 3.5% |
|
||||
| ov_SC03_093 | 0 | 0 | 0 | 83 | 2566 | 3.2% |
|
||||
| ov_SC03_094 | 0 | 0 | 0 | 85 | 2579 | 3.3% |
|
||||
| ov_SC03_095 | 0 | 0 | 0 | 82 | 2477 | 3.3% |
|
||||
| ov_SC03_096 | 0 | 0 | 0 | 82 | 2468 | 3.3% |
|
||||
| ov_SC03_097 | 0 | 0 | 0 | 86 | 2606 | 3.3% |
|
||||
| ov_SC03_098 | 0 | 0 | 0 | 82 | 2544 | 3.2% |
|
||||
| ov_SC03_099 | 0 | 0 | 0 | 82 | 2507 | 3.3% |
|
||||
| ov_SC03_100 | 0 | 0 | 0 | 83 | 2542 | 3.3% |
|
||||
| ov_SC03_101 | 0 | 0 | 0 | 83 | 2531 | 3.3% |
|
||||
| ov_SC03_102 | 0 | 0 | 0 | 82 | 2495 | 3.3% |
|
||||
| ov_SC03_103 | 0 | 0 | 0 | 82 | 2513 | 3.3% |
|
||||
| ov_SC03_104 | 0 | 0 | 0 | 86 | 2619 | 3.3% |
|
||||
| ov_SC03_105 | 0 | 0 | 0 | 86 | 2600 | 3.3% |
|
||||
| ov_SC03_108 | 0 | 0 | 0 | 79 | 2446 | 3.2% |
|
||||
| ov_SC03_109 | 0 | 0 | 0 | 81 | 2426 | 3.3% |
|
||||
| ov_SC03_110 | 0 | 0 | 0 | 79 | 2471 | 3.2% |
|
||||
| ov_SC03_111 | 0 | 0 | 0 | 82 | 2513 | 3.3% |
|
||||
| ov_SC03_112 | 0 | 0 | 0 | 81 | 2529 | 3.2% |
|
||||
| ov_SC03_113 | 0 | 0 | 0 | 82 | 2471 | 3.3% |
|
||||
| ov_SC03_114 | 0 | 0 | 0 | 81 | 2417 | 3.4% |
|
||||
| ov_SC03_115 | 0 | 0 | 0 | 81 | 2475 | 3.3% |
|
||||
| ov_SC03_116 | 0 | 0 | 0 | 82 | 2441 | 3.4% |
|
||||
| ov_SC03_117 | 0 | 0 | 0 | 85 | 2560 | 3.3% |
|
||||
| ov_SC03_118 | 0 | 0 | 0 | 92 | 2688 | 3.4% |
|
||||
| ov_SC03_119 | 0 | 0 | 0 | 92 | 2688 | 3.4% |
|
||||
| ov_SC03_121 | 0 | 0 | 0 | 82 | 2462 | 3.3% |
|
||||
| ov_SC03_124 | 0 | 0 | 0 | 95 | 2744 | 3.5% |
|
||||
| ov_SC03_125 | 0 | 0 | 0 | 91 | 2591 | 3.5% |
|
||||
| ov_SC03_126 | 0 | 0 | 0 | 80 | 2425 | 3.3% |
|
||||
| ov_SC04_000 | 4 | 4 | 0 | 92 | 2547 | 3.6% |
|
||||
| ov_SC04_002 | 0 | 0 | 0 | 83 | 2639 | 3.1% |
|
||||
| ov_SC04_003 | 0 | 0 | 0 | 83 | 2505 | 3.3% |
|
||||
| ov_SC04_004 | 0 | 0 | 0 | 81 | 2561 | 3.2% |
|
||||
| ov_SC04_005 | 0 | 0 | 0 | 85 | 2615 | 3.3% |
|
||||
| ov_SC04_006 | 0 | 0 | 0 | 81 | 2456 | 3.3% |
|
||||
| ov_SC04_007 | 0 | 0 | 0 | 83 | 2572 | 3.2% |
|
||||
| ov_SC04_008 | 0 | 0 | 0 | 79 | 2417 | 3.3% |
|
||||
| ov_SC04_009 | 0 | 0 | 0 | 82 | 2443 | 3.4% |
|
||||
| ov_SC04_010 | 0 | 0 | 0 | 80 | 2421 | 3.3% |
|
||||
| ov_SC04_011 | 0 | 0 | 0 | 85 | 2806 | 3.0% |
|
||||
| ov_SC04_012 | 0 | 0 | 0 | 80 | 2422 | 3.3% |
|
||||
| ov_SC04_015 | 0 | 0 | 0 | 91 | 2614 | 3.5% |
|
||||
| ov_SC04_016 | 0 | 0 | 0 | 81 | 2442 | 3.3% |
|
||||
| ov_SC04_018 | 4 | 4 | 0 | 92 | 2858 | 3.2% |
|
||||
| ov_SC04_019 | 4 | 4 | 0 | 92 | 2858 | 3.2% |
|
||||
| ov_SC04_020 | 0 | 0 | 0 | 91 | 2570 | 3.5% |
|
||||
| ov_SC04_021 | 0 | 0 | 0 | 80 | 2425 | 3.3% |
|
||||
| ov_SC05_000 | 4 | 4 | 0 | 86 | 2422 | 3.6% |
|
||||
| ov_SC05_001 | 0 | 0 | 0 | 84 | 2577 | 3.3% |
|
||||
| ov_SC05_002 | 0 | 0 | 0 | 82 | 2445 | 3.4% |
|
||||
| ov_SC05_003 | 0 | 0 | 0 | 80 | 2484 | 3.2% |
|
||||
| ov_SC05_004 | 0 | 0 | 0 | 81 | 2467 | 3.3% |
|
||||
| ov_SC05_005 | 0 | 0 | 0 | 80 | 2494 | 3.2% |
|
||||
| ov_SC05_006 | 0 | 0 | 0 | 79 | 2432 | 3.2% |
|
||||
| ov_SC05_007 | 0 | 0 | 0 | 84 | 2485 | 3.4% |
|
||||
| ov_SC05_008 | 0 | 0 | 0 | 81 | 2546 | 3.2% |
|
||||
| ov_SC05_009 | 0 | 0 | 0 | 83 | 2440 | 3.4% |
|
||||
| ov_SC05_010 | 0 | 0 | 0 | 83 | 2591 | 3.2% |
|
||||
| ov_SC05_011 | 0 | 0 | 0 | 80 | 2411 | 3.3% |
|
||||
| ov_SC05_017 | 0 | 0 | 0 | 87 | 2845 | 3.1% |
|
||||
| ov_SC05_018 | 0 | 0 | 0 | 92 | 2676 | 3.4% |
|
||||
| ov_SC05_019 | 0 | 0 | 0 | 80 | 2425 | 3.3% |
|
||||
| ov_SC06_000 | 4 | 4 | 0 | 91 | 2692 | 3.4% |
|
||||
| ov_SC06_006 | 0 | 0 | 0 | 80 | 2514 | 3.2% |
|
||||
| ov_SC06_008 | 0 | 0 | 0 | 85 | 2544 | 3.3% |
|
||||
| ov_SC06_010 | 0 | 0 | 0 | 84 | 2520 | 3.3% |
|
||||
| ov_SC06_011 | 0 | 0 | 0 | 83 | 2471 | 3.4% |
|
||||
| ov_SC06_013 | 0 | 0 | 0 | 80 | 2427 | 3.3% |
|
||||
| ov_SC06_014 | 0 | 0 | 0 | 81 | 2455 | 3.3% |
|
||||
| ov_SC06_015 | 0 | 0 | 0 | 79 | 2423 | 3.3% |
|
||||
| ov_SC06_016 | 0 | 0 | 0 | 81 | 2552 | 3.2% |
|
||||
| ov_SC06_018 | 0 | 0 | 0 | 87 | 2668 | 3.3% |
|
||||
| ov_SC06_020 | 0 | 0 | 0 | 80 | 2521 | 3.2% |
|
||||
| ov_SC06_022 | 0 | 0 | 0 | 87 | 2645 | 3.3% |
|
||||
| ov_SC06_024 | 0 | 0 | 0 | 85 | 2670 | 3.2% |
|
||||
| ov_SC06_025 | 0 | 0 | 0 | 84 | 2575 | 3.3% |
|
||||
| ov_SC06_027 | 0 | 0 | 0 | 80 | 2410 | 3.3% |
|
||||
| ov_SC06_029 | 0 | 0 | 0 | 91 | 2665 | 3.4% |
|
||||
| ov_SC06_030 | 0 | 0 | 0 | 79 | 2459 | 3.2% |
|
||||
| ov_SC06_032 | 0 | 0 | 0 | 86 | 2661 | 3.2% |
|
||||
| ov_SC06_033 | 0 | 0 | 0 | 86 | 2634 | 3.3% |
|
||||
| ov_SC07_000 | 4 | 4 | 0 | 85 | 2522 | 3.4% |
|
||||
| ov_SC07_001 | 0 | 0 | 0 | 81 | 2457 | 3.3% |
|
||||
| ov_SC07_002 | 0 | 0 | 0 | 83 | 2582 | 3.2% |
|
||||
| ov_SC07_008 | 0 | 0 | 0 | 79 | 2388 | 3.3% |
|
||||
| ov_SC07_009 | 0 | 0 | 0 | 81 | 2432 | 3.3% |
|
||||
| ov_SC01_000 | 557 | 557 | 0 | 557 | 2403 | 23.2% |
|
||||
| ov_SC01_001 | 557 | 557 | 0 | 559 | 2467 | 22.7% |
|
||||
| ov_SC01_004 | 549 | 549 | 0 | 550 | 2416 | 22.8% |
|
||||
| ov_SC01_005 | 556 | 556 | 0 | 563 | 2504 | 22.5% |
|
||||
| ov_SC01_006 | 556 | 556 | 0 | 563 | 2504 | 22.5% |
|
||||
| ov_SC01_008 | 549 | 549 | 0 | 551 | 2428 | 22.7% |
|
||||
| ov_SC01_009 | 549 | 549 | 0 | 550 | 2510 | 21.9% |
|
||||
| ov_SC01_074 | 549 | 549 | 0 | 551 | 2427 | 22.7% |
|
||||
| ov_SC01_077 | 783 | 557 | 0 | 785 | 2586 | 30.4% |
|
||||
| ov_SC01_080 | 553 | 553 | 0 | 553 | 2515 | 22.0% |
|
||||
| ov_SC01_084 | 553 | 553 | 0 | 558 | 2581 | 21.6% |
|
||||
| ov_SC02_000 | 557 | 557 | 0 | 564 | 2684 | 21.0% |
|
||||
| ov_SC02_003 | 557 | 557 | 0 | 564 | 2684 | 21.0% |
|
||||
| ov_SC02_004 | 553 | 553 | 0 | 553 | 2403 | 23.0% |
|
||||
| ov_SC02_005 | 549 | 549 | 0 | 559 | 2930 | 19.1% |
|
||||
| ov_SC02_011 | 553 | 553 | 0 | 565 | 2896 | 19.5% |
|
||||
| ov_SC02_015 | 553 | 553 | 0 | 553 | 2416 | 22.9% |
|
||||
| ov_SC02_016 | 553 | 553 | 0 | 556 | 2548 | 21.8% |
|
||||
| ov_SC02_017 | 553 | 553 | 0 | 561 | 2735 | 20.5% |
|
||||
| ov_SC02_021 | 553 | 553 | 0 | 553 | 2439 | 22.7% |
|
||||
| ov_SC02_026 | 553 | 553 | 0 | 559 | 2575 | 21.7% |
|
||||
| ov_SC02_027 | 553 | 553 | 0 | 562 | 2695 | 20.9% |
|
||||
| ov_SC02_028 | 553 | 553 | 0 | 563 | 2704 | 20.8% |
|
||||
| ov_SC02_031 | 553 | 553 | 0 | 559 | 2565 | 21.8% |
|
||||
| ov_SC02_035 | 553 | 553 | 0 | 556 | 2523 | 22.0% |
|
||||
| ov_SC02_039 | 553 | 553 | 0 | 553 | 2418 | 22.9% |
|
||||
| ov_SC02_041 | 553 | 553 | 0 | 556 | 2563 | 21.7% |
|
||||
| ov_SC03_001 | 553 | 553 | 0 | 571 | 2870 | 19.9% |
|
||||
| ov_SC03_002 | 557 | 557 | 0 | 573 | 2632 | 21.8% |
|
||||
| ov_SC03_003 | 553 | 553 | 0 | 554 | 2425 | 22.8% |
|
||||
| ov_SC03_006 | 557 | 557 | 0 | 566 | 2768 | 20.4% |
|
||||
| ov_SC03_007 | 553 | 553 | 0 | 557 | 2626 | 21.2% |
|
||||
| ov_SC03_010 | 553 | 553 | 0 | 553 | 2472 | 22.4% |
|
||||
| ov_SC03_011 | 553 | 553 | 0 | 559 | 2530 | 22.1% |
|
||||
| ov_SC03_012 | 553 | 553 | 0 | 554 | 2408 | 23.0% |
|
||||
| ov_SC03_013 | 553 | 553 | 0 | 553 | 2495 | 22.2% |
|
||||
| ov_SC03_014 | 553 | 553 | 0 | 563 | 2688 | 20.9% |
|
||||
| ov_SC03_015 | 553 | 553 | 0 | 563 | 2688 | 20.9% |
|
||||
| ov_SC03_023 | 553 | 553 | 0 | 554 | 2437 | 22.7% |
|
||||
| ov_SC03_024 | 553 | 553 | 0 | 565 | 2644 | 21.4% |
|
||||
| ov_SC03_028 | 553 | 553 | 0 | 557 | 2667 | 20.9% |
|
||||
| ov_SC03_029 | 553 | 553 | 0 | 563 | 2647 | 21.3% |
|
||||
| ov_SC03_030 | 553 | 553 | 0 | 555 | 2498 | 22.2% |
|
||||
| ov_SC03_031 | 553 | 553 | 0 | 557 | 2517 | 22.1% |
|
||||
| ov_SC03_089 | 553 | 553 | 0 | 560 | 2584 | 21.7% |
|
||||
| ov_SC03_090 | 553 | 553 | 0 | 561 | 2628 | 21.3% |
|
||||
| ov_SC03_091 | 553 | 553 | 0 | 561 | 2643 | 21.2% |
|
||||
| ov_SC03_092 | 553 | 553 | 0 | 565 | 2590 | 21.8% |
|
||||
| ov_SC03_093 | 553 | 553 | 0 | 557 | 2566 | 21.7% |
|
||||
| ov_SC03_094 | 553 | 553 | 0 | 559 | 2579 | 21.7% |
|
||||
| ov_SC03_095 | 553 | 553 | 0 | 556 | 2477 | 22.4% |
|
||||
| ov_SC03_096 | 553 | 553 | 0 | 556 | 2468 | 22.5% |
|
||||
| ov_SC03_097 | 553 | 553 | 0 | 560 | 2606 | 21.5% |
|
||||
| ov_SC03_098 | 553 | 553 | 0 | 556 | 2544 | 21.9% |
|
||||
| ov_SC03_099 | 553 | 553 | 0 | 556 | 2507 | 22.2% |
|
||||
| ov_SC03_100 | 553 | 553 | 0 | 557 | 2542 | 21.9% |
|
||||
| ov_SC03_101 | 553 | 553 | 0 | 557 | 2531 | 22.0% |
|
||||
| ov_SC03_102 | 553 | 553 | 0 | 556 | 2495 | 22.3% |
|
||||
| ov_SC03_103 | 553 | 553 | 0 | 556 | 2513 | 22.1% |
|
||||
| ov_SC03_104 | 553 | 553 | 0 | 560 | 2619 | 21.4% |
|
||||
| ov_SC03_105 | 553 | 553 | 0 | 560 | 2600 | 21.5% |
|
||||
| ov_SC03_108 | 553 | 553 | 0 | 553 | 2446 | 22.6% |
|
||||
| ov_SC03_109 | 553 | 553 | 0 | 555 | 2426 | 22.9% |
|
||||
| ov_SC03_110 | 553 | 553 | 0 | 553 | 2471 | 22.4% |
|
||||
| ov_SC03_111 | 553 | 553 | 0 | 556 | 2513 | 22.1% |
|
||||
| ov_SC03_112 | 553 | 553 | 0 | 555 | 2529 | 21.9% |
|
||||
| ov_SC03_113 | 553 | 553 | 0 | 556 | 2471 | 22.5% |
|
||||
| ov_SC03_114 | 553 | 553 | 0 | 555 | 2417 | 23.0% |
|
||||
| ov_SC03_115 | 553 | 553 | 0 | 555 | 2475 | 22.4% |
|
||||
| ov_SC03_116 | 553 | 553 | 0 | 556 | 2441 | 22.8% |
|
||||
| ov_SC03_117 | 553 | 553 | 0 | 559 | 2560 | 21.8% |
|
||||
| ov_SC03_118 | 553 | 553 | 0 | 566 | 2688 | 21.1% |
|
||||
| ov_SC03_119 | 553 | 553 | 0 | 566 | 2688 | 21.1% |
|
||||
| ov_SC03_121 | 553 | 553 | 0 | 556 | 2462 | 22.6% |
|
||||
| ov_SC03_124 | 549 | 549 | 0 | 569 | 2744 | 20.7% |
|
||||
| ov_SC03_125 | 553 | 553 | 0 | 565 | 2591 | 21.8% |
|
||||
| ov_SC03_126 | 553 | 553 | 0 | 554 | 2425 | 22.8% |
|
||||
| ov_SC04_000 | 557 | 557 | 0 | 566 | 2547 | 22.2% |
|
||||
| ov_SC04_002 | 553 | 553 | 0 | 557 | 2639 | 21.1% |
|
||||
| ov_SC04_003 | 553 | 553 | 0 | 557 | 2505 | 22.2% |
|
||||
| ov_SC04_004 | 553 | 553 | 0 | 555 | 2561 | 21.7% |
|
||||
| ov_SC04_005 | 553 | 553 | 0 | 559 | 2615 | 21.4% |
|
||||
| ov_SC04_006 | 553 | 553 | 0 | 555 | 2456 | 22.6% |
|
||||
| ov_SC04_007 | 553 | 553 | 0 | 557 | 2572 | 21.7% |
|
||||
| ov_SC04_008 | 553 | 553 | 0 | 553 | 2417 | 22.9% |
|
||||
| ov_SC04_009 | 553 | 553 | 0 | 556 | 2443 | 22.8% |
|
||||
| ov_SC04_010 | 553 | 553 | 0 | 554 | 2421 | 22.9% |
|
||||
| ov_SC04_011 | 553 | 553 | 0 | 559 | 2806 | 19.9% |
|
||||
| ov_SC04_012 | 553 | 553 | 0 | 554 | 2422 | 22.9% |
|
||||
| ov_SC04_015 | 553 | 553 | 0 | 565 | 2614 | 21.6% |
|
||||
| ov_SC04_016 | 553 | 553 | 0 | 555 | 2442 | 22.7% |
|
||||
| ov_SC04_018 | 553 | 553 | 0 | 566 | 2858 | 19.8% |
|
||||
| ov_SC04_019 | 553 | 553 | 0 | 566 | 2858 | 19.8% |
|
||||
| ov_SC04_020 | 553 | 553 | 0 | 565 | 2570 | 22.0% |
|
||||
| ov_SC04_021 | 553 | 553 | 0 | 554 | 2425 | 22.8% |
|
||||
| ov_SC05_000 | 557 | 557 | 0 | 560 | 2422 | 23.1% |
|
||||
| ov_SC05_001 | 553 | 553 | 0 | 558 | 2577 | 21.7% |
|
||||
| ov_SC05_002 | 553 | 553 | 0 | 556 | 2445 | 22.7% |
|
||||
| ov_SC05_003 | 553 | 553 | 0 | 554 | 2484 | 22.3% |
|
||||
| ov_SC05_004 | 553 | 553 | 0 | 555 | 2467 | 22.5% |
|
||||
| ov_SC05_005 | 553 | 553 | 0 | 554 | 2494 | 22.2% |
|
||||
| ov_SC05_006 | 553 | 553 | 0 | 553 | 2432 | 22.7% |
|
||||
| ov_SC05_007 | 553 | 553 | 0 | 558 | 2485 | 22.5% |
|
||||
| ov_SC05_008 | 553 | 553 | 0 | 555 | 2546 | 21.8% |
|
||||
| ov_SC05_009 | 553 | 553 | 0 | 557 | 2440 | 22.8% |
|
||||
| ov_SC05_010 | 553 | 553 | 0 | 557 | 2591 | 21.5% |
|
||||
| ov_SC05_011 | 553 | 553 | 0 | 554 | 2411 | 23.0% |
|
||||
| ov_SC05_017 | 549 | 549 | 0 | 561 | 2845 | 19.7% |
|
||||
| ov_SC05_018 | 553 | 553 | 0 | 566 | 2676 | 21.2% |
|
||||
| ov_SC05_019 | 553 | 553 | 0 | 554 | 2425 | 22.8% |
|
||||
| ov_SC06_000 | 557 | 557 | 0 | 565 | 2692 | 21.0% |
|
||||
| ov_SC06_006 | 553 | 553 | 0 | 554 | 2514 | 22.0% |
|
||||
| ov_SC06_008 | 553 | 553 | 0 | 559 | 2544 | 22.0% |
|
||||
| ov_SC06_010 | 553 | 553 | 0 | 558 | 2520 | 22.1% |
|
||||
| ov_SC06_011 | 553 | 553 | 0 | 557 | 2471 | 22.5% |
|
||||
| ov_SC06_013 | 553 | 553 | 0 | 554 | 2427 | 22.8% |
|
||||
| ov_SC06_014 | 553 | 553 | 0 | 555 | 2455 | 22.6% |
|
||||
| ov_SC06_015 | 553 | 553 | 0 | 553 | 2423 | 22.8% |
|
||||
| ov_SC06_016 | 553 | 553 | 0 | 555 | 2552 | 21.7% |
|
||||
| ov_SC06_018 | 553 | 553 | 0 | 561 | 2668 | 21.0% |
|
||||
| ov_SC06_020 | 553 | 553 | 0 | 554 | 2521 | 22.0% |
|
||||
| ov_SC06_022 | 553 | 553 | 0 | 561 | 2645 | 21.2% |
|
||||
| ov_SC06_024 | 553 | 553 | 0 | 559 | 2670 | 20.9% |
|
||||
| ov_SC06_025 | 553 | 553 | 0 | 558 | 2575 | 21.7% |
|
||||
| ov_SC06_027 | 553 | 553 | 0 | 554 | 2410 | 23.0% |
|
||||
| ov_SC06_029 | 553 | 553 | 0 | 565 | 2665 | 21.2% |
|
||||
| ov_SC06_030 | 553 | 553 | 0 | 553 | 2459 | 22.5% |
|
||||
| ov_SC06_032 | 553 | 553 | 0 | 560 | 2661 | 21.0% |
|
||||
| ov_SC06_033 | 553 | 553 | 0 | 560 | 2634 | 21.3% |
|
||||
| ov_SC07_000 | 557 | 557 | 0 | 559 | 2522 | 22.2% |
|
||||
| ov_SC07_001 | 553 | 553 | 0 | 555 | 2457 | 22.6% |
|
||||
| ov_SC07_002 | 553 | 553 | 0 | 557 | 2582 | 21.6% |
|
||||
| ov_SC07_008 | 553 | 553 | 0 | 553 | 2388 | 23.2% |
|
||||
| ov_SC07_009 | 553 | 553 | 0 | 555 | 2432 | 22.8% |
|
||||
|
||||
@@ -20,7 +20,7 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor
|
||||
- [x] **T3 [#4] — DONE** — onboarded all remaining 118 overlays (0 failed) → full fleet **136 binaries**; **clean rebuild `check-all` 136/136 byte-identical** (R22, 0 extract fails, ~8 min).
|
||||
- [ ] T3 [#4] — onboard remaining ~118 overlays (full fleet); 136/136 `check-all` from clean (R22).
|
||||
- [x] **T4 [#5] — DONE** — `progress.py --fleet` → `docs/progress.fleet.md` (fleet **947 REAL / 959 LINKED / 13132 byte-identical / 344010 matchable = 3.82%**); refactor `report(binary)`+index (6m38s→7s, single-binary output unchanged); wired into `make report`; **fixed dup_report --cross double-count** (overlay counted as named binary AND glob → collapsible bytes were 2× inflated; back to accurate 28.6M). dedup-check 8/0. **(P6 rules check done before T4.)**
|
||||
- [ ] **T5 [#6] — NEXT** — (a) bulk-propagate the 577 already-matched-in-077 shared funcs fleet-wide (mechanical, `dedup_propagate --auto-from ov_SC01_077`); (b) Ultracode-harvest the still-unmatched shared core (Tier-1 small/high-count). **(R27: prompt Drew for `/effort ultracode` + WAIT before the harvest Workflow.)**
|
||||
- [~] **T5 [#6] — (a) DONE / (b) PENDING TOGGLE** — (a) **bulk-propagated 553 already-matched shared funcs fleet-wide** (`dedup_propagate --auto-from ov_SC01_077`; 9 skipped = 077-local types, byte-gate caught + compile-pre-filter added): all 134 overlays byte-identical, 561 dedup groups (0 failed). **Fleet REAL 947→74,527; byte-identical 3.82%→22.14%.** (b) Ultracode-harvest the still-UNMATCHED shared core — **STOP: prompt Drew for `/effort ultracode` + WAIT before the harvest Workflow (R27).**
|
||||
- [ ] T6 [#7] — Ultracode shared-core harvest Tier-2 (medium) + propagate.
|
||||
- [ ] T7 [#8] — ongoing tail: giants (match_one) + per-overlay unique remainder; Ghidra escalation when stuck.
|
||||
- [ ] T8 [#9] — phase close: milestone proof (136/136 clean) + PhaseEnd (Tier 1 / Max).
|
||||
@@ -39,6 +39,7 @@ Overlays are position-locked at vram 0x80128158 and share an enormous engine cor
|
||||
- 2026-06-16 — **T0 done** (commit:0101): Phase-14 deferral propagated through gen2-roadmap (additive, H5).
|
||||
- 2026-06-16 — **T1 done**: onboarded wave-1 = ov_{SC01_000, SC01_001, SC02_000, SC02_003, SC03_002, SC03_006, SC04_000, SC04_018, SC04_019, SC05_000, SC06_000, SC07_000} (all byte-identical at 100% INCLUDE_ASM in ~50s; dup pairs SC02_000≡003=5ece4bca, SC04_018≡019=fe9b413f). Fleet `make check-all` = **18/18 passed**. Position-lock risk retired across all 7 areas — no anomalies. Next: T2 (dedup_propagate.py).
|
||||
- 2026-06-16 — **KEY FINDING (reshapes T5):** of `ov_SC01_077`'s 785 matched signed functions, **577 are h_exact-identical across ALL 134 overlays** (2.19 MB collapsible) — already matched, just need propagating (free credit, no harvest). 204 are 077-unique. So T5 has two parts: (a) bulk-propagate these 577 already-matched shared funcs fleet-wide (mechanical, after T3); (b) Ultracode-harvest the still-UNMATCHED shared core (the big ex0–ex50 giants/mediums, mostly unmatched even in 077).
|
||||
- 2026-06-16 — **T5(a) done** (the big free-credit run): `dedup_propagate --auto-from ov_SC01_077` bulk-propagated **553** already-matched shared functions across all 134 overlays, each byte-gated. Hardened the tool for fleet scale: registry **shorthand** (vram+binaries; dedup.us.yaml 4050 lines vs ~77k verbose), **per-overlay apply** (one read/write/file), **gate-only-changed**, **skip already-registered** (additive/resumable), and a **compile pre-filter** (body must build with common.h alone — 9 functions use 077-local struct types and were skipped honestly; the byte-gate first caught one mid-run → fail-closed revert → added the filter). `group_members()` reader (both forms) in dedup_integrate + progress; progress `_DEDUP_CACHE` (fleet 136× parse → 1). **Fleet: REAL 947→74,527, byte-identical 13,132→76,174 = 22.14%**; dedup-check 561 validated / 0 failed. R22 clean rebuild verifying before commit. Next: T5(b) Ultracode harvest of the unmatched core (R27 toggle).
|
||||
- 2026-06-16 — **T4 done**: refactored `progress.py` → `report(binary)` + `--fleet` (aggregates `docs/progress.fleet.md`, deterministic source-derived) + a per-binary `.s` index (fleet run 6m38s→7s; single-binary `docs/progress.md` byte-unchanged). Wired `--fleet` into `make report`. **Honesty fix (R14):** `dup_report --cross` was double-counting each onboarded overlay (named BINARIES entry AND `.run/sig.ov_*` glob) → collapsible bytes 2× inflated (58.7M); deduped by alias → accurate **9366 h_exact groups / 28.6M collapsible**. `make report` green, dedup-check 8/0. Fleet now: 947 REAL / 959 LINKED / 3.82% byte-identical. Rules check (P6) done. Next: T5.
|
||||
- 2026-06-16 — **T3 done**: onboarded all remaining 118 overlays (sequential new_overlay.sh, 0 failed) → fleet = 134 overlays + main + resident = **136 binaries**. R22 CLEAN rebuild (make clean → extract all 136 → check-all) = **136 passed / 0 failed**, 0 extract fails. Every overlay byte-identical at 100% INCLUDE_ASM. Report-tool dicts + overlays.mk auto-registered by new_overlay.sh. Next: T4 (fleet roll-up + regenerate fleet-wide cross-report).
|
||||
- 2026-06-16 — **T2 done**: built `tools/dedup_propagate.py` (extract body → DEFINE_func macro in src/shared/engine_core.h → in-place stub/def replace at every h_exact member → snapshot+byte-gate fail-closed → register dedup.us.yaml). Proven on 4 medium funcs (0x80128EA8/8012A568/80132EC4/80138C30) across all 16 onboarded: clean `check-all` 18/18, dedup_integrate 8 validated/0 failed, idempotent re-run no-op, negative test (corrupt body) → `make check` FAILS then restores. Fixed 2 bugs found by self-verification: (i) edit-accumulation read from snapshot not disk (only last fn landed); (ii) **Makefile had no header-dep tracking** → header-only edits were stale/false-pass → added `cpp -MMD -MP` + `-include $(C_DEPS)` (output-neutral; R22-clean 18/18). Cookbook §14, SETUP inventory updated. Next: T3.
|
||||
|
||||
+553
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+549
-624
File diff suppressed because it is too large
Load Diff
+549
-624
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+553
-2774
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+549
-624
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+550
-624
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+549
-624
File diff suppressed because it is too large
Load Diff
+549
-624
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+554
-632
File diff suppressed because it is too large
Load Diff
+553
-632
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user