Commit Graph

218 Commits

Author SHA1 Message Date
Drew T be38b94147 feat(phase-24): T6 — flagship func_80132784 propagated ×134 (+1.6% byte-weight) via straggler-reconcile
The 400-ins giant func_80132784 (S11 prologue-weave; cracked T4, banked ×1) is now shared across
ALL 134 overlays byte-identical — the highest single byte-weight lever in the project.

- Blocker (T4-deferred): dedup_propagate's single-`--addr` plan is all-or-nothing; ONE straggler
  overlay (ov_SC02_005) failed to compile the shared macro -> the whole fn dropped, kept ×1.
- Root cause: ov_SC02_005 declared a CONFLICTING caller extern `void func_80132784(s32,s32,s32)`
  while the def is `(s32,s32,u32)` (3rd param s32 vs u32) -> `conflicting types`. The call site
  casts `((void(*)(u8*,u8*,u16))func_80132784)(...)` so the extern type is codegen-irrelevant.
- Fix (T6 integration-recovery pattern, proven): reconcile the straggler's caller extern to the
  def's canonical signature (s32->u32, byte-neutral), then propagate. dedup_propagate then rebuilt
  all 134 overlays BYTE-IDENTICAL; registered group E_func_80132784 (134 members).
- dedup-check: 1784 validated, 0 failed. Verified by a clean R22 fleet check-all (136/136).
- This is the concrete spec for the T6 tool: detect a straggler's conflicting caller decl,
  reconcile to the def's canonical sig, re-gate, propagate full (vs. the all-or-nothing drop).
2026-07-03 04:21:15 -06:00
Drew T 0cda15c6de fix(phase-24): T5c — restore main's clean-rebuild: propagate the Phase-21 PsyQ renames to 62 stub refs
Pre-existing latent breakage (Phase-21 close commit:0292, "+62 PsyQ names"), found during T5b's
R22 fleet verify. A genuinely-clean `make clean` + re-extract + build of `main` failed with
dozens of `can't open asm/nonmatchings/800c3/func_*.s` — clean-rebuild broken since Phase 21,
masked all along by incremental builds reusing stale pre-rename .s/.o (the exact R22 failure mode).

- Root cause (byte-proven): Phase-21 xdedup renamed 62 PsyQ library functions to their proper
  names (InitHeap, FlushCache, GetTPage, SysEnqIntRP, SpuWrite, CdMix, __main …) in
  symbols.us.txt, but never regenerated/renamed the committed src/*.c stub refs that call them by
  the OLD func_<ADDR> name. splat's FRESH regeneration of a stub .c uses the CURATED names (move
  src/800c3.c aside -> splat writes INCLUDE_ASM(InitHeap) + emits InitHeap.s); the committed stubs
  were simply stale.
- Fix: rename all 62 INCLUDE_ASM(func_<ADDR>) -> the curated name across 12 files (800c.c 1,
  800c3.c 22, apicard1/2/4 4/6/2, boot.c 1, libcd1.c 8, libetc.c 6, libgpu.c 3, sgap.c 1,
  snd1.c 7, snd2.c 1). Pure rename to match splat's canonical output; byte-neutral.
- VERIFIED: main clean-builds 143dbb89 from a fully clean tree; full clean fleet check-all 136/136.
- Lesson (cookbook): a symbols.us.txt rename must be propagated to (a) shared-macro bodies
  (engine_core.h — the T5b GetTPage fix) AND (b) INCLUDE_ASM stub refs (this), AND verified by a
  genuinely-clean check-all (make clean + full re-extract), never incremental. Added a lint check.
2026-07-03 02:50:03 -06:00
Drew T 6c2fb9f04f fix+feat(phase-24): T5b — S11 CRACKED (func_8014E048 banked) + fleet GetTPage linkage fix
Both concerns byte-verified from a fully-clean tree (ov_SC01_077 d19c9580, ov_SC07_009 2a6499b6
+ 133 overlays). Fleet is 135/136 — the 1 remaining failure is `main`, a SEPARATE pre-existing
Phase-21 breakage (62 dangling INCLUDE_ASM refs, tracked in CURRENT_PHASE, fix in progress),
NOT introduced by this commit.

[FIX (partial) — pre-existing Phase-21 latent breakage, found during T5b's fleet verify]
- A genuinely-clean `make check-all` failed 135/136 (overlays: `undefined reference to func_80058B40`;
  main: dozens of `can't open asm/nonmatchings/800c3/func_*.s`). This commit fixes the OVERLAY side.
- Root cause: Phase-21 xdedup renamed func_80058B40 -> GetTPage in symbols.us.txt (one of the
  +62 PsyQ names) but did NOT update the two shared engine_core.h macros that CALL it
  (DEFINE_func_80139680, DEFINE_func_8012E28C — in all 134 overlays + ov_SC01_077_a). Since
  Phase 21 a clean rebuild couldn't link; incremental builds reused stale .o's and masked it
  (the R22 failure mode) — every "check-all 136/136" Phase 21->23 was incrementally-stale.
- Scope = exactly 1 symbol (static scan of all func_/D_ refs in the shared headers vs symbols).
- Fix: rename the 4 occurrences -> GetTPage (byte-neutral, same addr 0x80058b40 -> identical jal;
  G6 curated-name). ov_SC07_009 link-fail -> byte-identical 2a6499b6.
- Lesson: a symbols.us.txt rename must be propagated to shared-macro bodies AND verified by a
  genuinely clean (make clean + full re-extract) check-all, never incremental.

[FEAT — T5b: the S11 class crack, Fable5 spike]
- The S11 LUID(x)alloc "intrinsic" verdict was MAP-INCOMPLETENESS. func_8014E048 (143 ins,
  reach-134; "not source-steerable" since the map wave; 28-off even after T5's directed permuter)
  -> MATCH (143/143) -> whole-binary BANKED (ov_SC01_077 d19c9580). Derived by reading gcc-2.7.2
  source + RTL dumps (12 experiments .run/gccmap/exp/e1a..e1k.c).
- NEW LEVERS (byte-proven): S12 reused-s32-temp fence (u16 temps DON'T work — combine folds the
  unpromoted-HI zext temps away); S13 head-skip escape (body-local param copies conflict-steer the
  scratch contest; volatile-asm dead-read wedge fence; multi-input dead-read K2 rebalance);
  cse-opaque asm-copy; RC-4b pinned store-temp; RC-10 preference-cascade mechanics.
- Integration reconciles (both T6 classes): engine_core.h caller decl s16*->u16* (codegen-neutral)
  + canonical data decls w/ *(u16*) casts (D_801152A8 u8[] / D_801152AC s16). x134 lift blocked by
  dedup_propagate self-containment (pins/asm) -> T6 target (joins func_80132784).
- Distilled (R30/R16): sched.md §6 (S12/S13) + regalloc.md §F (RC-10 + RC-6/S11 downgrade) +
  cookbook §31 triage update; backlog re-logged (capped); memory updated.
2026-07-03 02:02:26 -06:00
Drew T 9c8bb51831 feat(phase-24): T4-flagship gate — +1 fns x0 propagated (fleet 64.86%) 2026-07-02 23:38:32 -06:00
Drew T da4eb3ff6c feat(phase-23): map-wave gate — +1 fns x0 propagated (fleet 64.86%) 2026-07-02 21:19:07 -06:00
Drew T fcfe3afea6 feat(phase-23): gccmap-remat gate — +1 fns x1 propagated (fleet 64.86%) 2026-07-02 20:08:10 -06:00
Drew T 396fd28398 feat(phase-23): toolkit-storeload gate — +2 fns x2 propagated (fleet 64.82%) 2026-07-02 17:33:17 -06:00
Drew T 6678c6868a feat(phase-23): Fable5Max cracks §20 "unsteerable" giant func_8014EE14 ×134
- Fable5Max agent (Agent model=fable) matched a 248-ins reach-134 GIANT on the
  §20/§10 store-vs-load wall (22 phases "CONFIRMED unsteerable") by reading the
  gcc-2.7.2 source (tools/reference/gcc-papermario) + RTL -da dumps. Leaf
  MATCH(248 ins) -> whole-binary banked:1 -> dedup_propagate ×134. Verified:
  check-all 136/136 byte-identical, dedup-check 1780 validated/0 failed.
- 3 byte-proven idioms -> cookbook §30 (corrects §29's "not a bigger model"):
  (1) store-vs-load is a deterministic MEM_IN_STRUCT_P /s aliasing flag, not a
      scheduler tie-break; steer via ((struct{s32 f;}*)p)->f (anon struct keeps
      /s AND propagates ×134) to grant, *p to deny
  (2) def-side return-type wall has a MACRO escape: widen a discarding caller
      macro's extern void->s32 (byte-neutral, check-all-verified) -- extends §29
  (3) birthing-boost prologue-order lever: __asm__("":"=r"(x):"0"(x)) re-tie in a
      later bb kills sched.c's REG_N_SETS==1 priority boost
- tools/glm_parallel.sh: K concurrent OpenRouter/GLM cloud drafters (parallel
  api_draft), key read from .env at runtime
- §10/§20 "store-vs-load unsteerable" backlog now re-test candidates:
  func_8014F2E0, func_80150528, func_8014EA4C
2026-07-02 16:56:56 -06:00
Drew T 13122771a0 feat(decomp): bulk_harvest — +45 fns across 13 binaries, 6 propagated (fleet 64.7%) 2026-07-02 15:29:38 -06:00
Drew T 0d1e8d2372 feat(decomp): bulk_harvest — +44 fns across 18 binaries, 3 propagated (fleet 64.69%) 2026-07-02 14:57:27 -06:00
Drew T 09e80573b7 feat(phase-23): glm-small40 gate — +2 fns x2 propagated (fleet 64.67%) 2026-07-02 11:08:49 -06:00
Drew T 00d9d9d491 feat(phase-23): T10.9 — 2 fresh hard-band GLM banks; fresh hand-solve confirms idiom well is DRY
- GLM deep-solved 15 fresh 25-118-ins hard fns: 4/15 match_one, 2 whole-binary banks (func_8017DE28,
  func_8015EEE0), $2.00. def-side wall caps the other 2 correct bodies.
- IDIOM VERDICT (Drew's fair test): GLM's correct bodies reason about KNOWN gcc mechanics (delay slots,
  callee-saved $s0, reload-after-call aliasing, switch jump tables) — cookbook §10/§17/jump-table.
  NO new idiom. The quirk space is largely mapped (22 phases of Opus-Max mining). Well DRY confirmed
  from BOTH angles: failed-residual (T10.8) AND fresh-hand-solve (T10.9).
2026-07-02 02:02:25 -06:00
Drew T 8562aa89c1 feat(phase-23): T10.7 Option-3 — GLM reasons the def-side wall; +1 bank (func_80175184)
- tools/glm_reconcile.py (NEW): aim GLM's reasoning at the DEF-side loose-typing wall (body + conflicting
  TU decls + reconciliation toolkit -> consistent buildable byte-identical decls); captures reasoning
  (.run/glm_reason/, idiom source R16); relax-in-any-TU-file + crash-robust call
- api_draft: REASON=1 saves the reasoning trace per draft (idiom mining on any GLM run)
- fix_arity_callers: --any-proto (relax any prototype, not just (void))
- RESULT: GLM's reasoning is expert-level (store-width/sh-vs-sw awareness, K&R promotion, independently
  derives the cast idiom) but banks only 1/7 reconciliations; mechanical relaxation 0/7. The def-side
  wall is INTRINSIC (narrow-param + byte-level addressing defeat reconciliation) — Fable5 §3c re-test
  CONFIRMS the wall holds even vs a frontier reasoning model aimed directly at it. func_80175184 banked,
  check-all 136/136
2026-07-01 21:03:08 -06:00
Drew T b1e0391c52 feat(phase-23): T10.7a — recover 1 more GLM bank via fix_arity_callers (func_801577C8)
- def-side conflict (engine_core.h forward-declared func_801577C8(void) vs GLM's byte-correct
  (s32) def) resolved by relaxing the caller decl to no-proto; strip GLM externs + gate. 136/136.
- FINDING: only +1 of 8 stranded recovers mechanically; the other 7 are the intrinsic Phase-16/20
  DEF-side loose-typing wall (5 have non-(void) conflicting forward-decls, 1 narrow-param) — the
  wall caps ANY drafter, not a v3-tuning artifact (Fable5 review §3c re-test: wall HOLDS)
2026-07-01 19:27:45 -06:00
Drew T 42719160e7 feat(phase-23): T10.7 — first GLM5.2 cloud-model banks (2 hard-band fns, byte-gated)
- GLM5.2 via OpenRouter banked func_8013373C + func_8012F8C8 (ov_SC01_077_a.c), 16-22 ins
  hard-band fns v3 could not match; whole-binary byte-gate verified, check-all 136/136
2026-07-01 19:17:39 -06:00
Drew T 6069eaa727 feat(decomp): bulk_harvest — +5 fns across 5 binaries, 0 propagated (fleet 64.6%) 2026-07-01 14:17:42 -06:00
Drew T 8f15e2bad9 feat(decomp): bulk_harvest — +38 fns across 23 binaries, 1 propagated (fleet 64.59%) 2026-07-01 14:10:47 -06:00
Drew T 34ef8ad960 feat(decomp): bulk_harvest — +35 fns across 21 binaries, 0 propagated (fleet 64.58%) 2026-07-01 13:28:40 -06:00
Drew T d53b6ae56a feat(decomp): bulk_harvest — +45 fns across 28 binaries, 2 propagated (fleet 64.57%) 2026-07-01 12:45:44 -06:00
Drew T 8ad248fa3d feat(decomp): bulk_harvest — +48 fns across 35 binaries, 1 propagated (fleet 64.56%) 2026-07-01 12:10:38 -06:00
Drew T f2b9c24735 feat(decomp): bulk_harvest — +56 fns across 38 binaries, 2 propagated (fleet 64.54%) 2026-07-01 11:32:03 -06:00
Drew T a95c19447d feat(decomp): bulk_harvest — +58 fns across 39 binaries, 1 propagated (fleet 64.53%) 2026-07-01 10:44:57 -06:00
Drew T ecf01e32a3 feat(decomp): bulk_harvest — +58 fns across 38 binaries, 0 propagated (fleet 64.51%) 2026-07-01 09:59:28 -06:00
Drew T ef27dedb83 feat(decomp): bulk_harvest — +51 fns across 36 binaries, 2 propagated (fleet 64.49%) 2026-07-01 09:21:07 -06:00
Drew T eb696bf35d feat(decomp): bulk_harvest — +49 fns across 41 binaries, 0 propagated (fleet 64.48%) 2026-07-01 08:45:39 -06:00
Drew T 416b3f37a6 feat(decomp): bulk_harvest — +56 fns across 46 binaries, 2 propagated (fleet 64.46%) 2026-07-01 08:05:11 -06:00
Drew T 67a0718148 feat(decomp): bulk_harvest — +54 fns across 48 binaries, 3 propagated (fleet 64.45%) 2026-07-01 07:23:56 -06:00
Drew T 00064af879 feat(decomp): bulk_harvest — +47 fns across 43 binaries, 1 propagated (fleet 64.43%) 2026-07-01 06:46:07 -06:00
Drew T 7e9dd8f03a feat(decomp): bulk_harvest — +53 fns across 48 binaries, 2 propagated (fleet 64.42%) 2026-07-01 06:05:00 -06:00
Drew T c1afac9f76 feat(decomp): bulk_harvest — +70 fns across 58 binaries, 2 propagated (fleet 64.4%) 2026-07-01 05:17:55 -06:00
Drew T f55052e2b5 feat(decomp): bulk_harvest — +64 fns across 55 binaries, 1 propagated (fleet 64.38%) 2026-07-01 04:39:21 -06:00
Drew T b4693430a0 feat(decomp): bulk_harvest — +66 fns across 55 binaries, 1 propagated (fleet 64.36%) 2026-07-01 04:00:29 -06:00
Drew T 3d90707d41 feat(decomp): bulk_harvest — +69 fns across 62 binaries, 1 propagated (fleet 64.34%) 2026-07-01 03:22:46 -06:00
Drew T 7fa2134326 feat(decomp): bulk_harvest — +75 fns across 64 binaries, 0 propagated (fleet 64.32%) 2026-07-01 02:41:58 -06:00
Drew T d2d15c9e41 feat(decomp): bulk_harvest — +78 fns across 69 binaries, 1 propagated (fleet 64.3%) 2026-07-01 02:03:59 -06:00
Drew T 7efe5ce10d feat(decomp): bulk_harvest — +72 fns across 63 binaries, 5 propagated (fleet 64.28%) 2026-07-01 01:29:20 -06:00
Drew T 95586a6751 feat(decomp): bulk_harvest — +69 fns across 67 binaries, 6 propagated (fleet 64.26%) 2026-07-01 00:54:27 -06:00
Drew T 6eee685acc feat(decomp): bulk_harvest — +81 fns across 74 binaries, 18 propagated (fleet 64.23%) 2026-07-01 00:14:55 -06:00
Drew T 337e120c2a feat(decomp): bulk_harvest — +4 fns across 4 binaries, 0 propagated (fleet 64.21%) 2026-06-30 23:39:18 -06:00
Drew T 5ba5500f82 feat(decomp): bulk_harvest — +4 fns across 4 binaries, 1 propagated (fleet 64.21%) 2026-06-30 23:37:38 -06:00
Drew T aa2af72f0c feat(decomp): bulk_harvest — +52 fns across 40 binaries, 12 propagated (fleet 64.2%) 2026-06-30 23:17:02 -06:00
Drew T a36c5ded0a feat(decomp): bulk_harvest — +9 fns across 9 binaries, 12 propagated (fleet 64.19%) 2026-06-30 22:52:53 -06:00
Drew T f72aa74bd4 feat(phase-23): lora-grind gate — +22 fns x0 propagated (fleet 64.19%) 2026-06-30 15:49:45 -06:00
Drew T 72dabb470c feat(phase-23): broad v3 harvest (48 banks) + final propagate sweep; docs
- bounded broad v3 harvest banked 48 small fns across SC01/SC02 overlays (mostly
  reach-1 ×1; fleet 64.16->64.18%), final propagate sweep +4 groups (1687->1691)
- check-all 136/136 byte-identical, dedup-check 0 failed
- docs/community-matching-model-plan.md (publishing the drafter — parked)
- docs/sister-decomps.md (VS cross-project plan + idiom-discovery rationale — parked)
- CURRENT_PHASE.md: 2026-07-01 session arc (injection lever +0.34%, the type-walled-14
  deferred, the saturation-campaign plan)
2026-06-30 13:54:53 -06:00
Drew T 71e686ad2e feat(phase-23): lora-grind gate — +4 fns x0 propagated (fleet 64.18%) 2026-06-30 13:50:51 -06:00
Drew T 7b1b68cdad feat(phase-23): lora-grind gate — +6 fns x0 propagated (fleet 64.18%) 2026-06-30 13:37:06 -06:00
Drew T 613df42ed0 feat(phase-23): lora-grind gate — +7 fns x0 propagated (fleet 64.18%) 2026-06-30 13:24:13 -06:00
Drew T 7792566bfd feat(phase-23): lora-grind gate — +7 fns x0 propagated (fleet 64.17%) 2026-06-30 13:11:19 -06:00
Drew T 39ccbee46c feat(phase-23): lora-grind gate — +3 fns x0 propagated (fleet 64.17%) 2026-06-30 12:58:40 -06:00
Drew T 15a456302e feat(phase-23): lora-grind gate — +12 fns x0 propagated (fleet 64.17%) 2026-06-30 12:46:47 -06:00