Commit Graph

1474 Commits

Author SHA1 Message Date
Drew T a852982105 feat(phase-31): wave L — 42 MAIN functions banked, R22 213/213 (main 133 -> 175)
- 44 atlas mass cards -> 44/44 shape-verified, 42 banked (2 dropped: a duplicate SVECTOR
  typedef and a u8[] vs char[] decl conflict). main stubs 955 -> 913. fleet stubs -> 11,589.
- first wave carrying law 1c (match_one masks relocations => verifies SHAPE not SYMBOL
  IDENTITY; re-check every symbol against the target .s relocation lines after MATCH).
- the compile-error shortcut paid for itself: named 'SVECTOR at src/800.c:94' and the exact
  draft in seconds, where the old bisect path burned 28 minutes producing nothing.
- KNOWN NEXT IMPROVEMENT: gate_main should strip duplicate typedefs on substitution the way
  harvest_verify already does — src/800.c carries a local SVECTOR from a previously banked
  function, so any later draft defining its own collides. Mechanical, recurring, cheap.
2026-08-15 06:02:18 -06:00
Drew T cf36cf6f21 feat(phase-31): wave K — 41 MAIN functions banked, R22 213/213 (main 38 -> 79)
- 44 atlas mass cards on main -> 44/44 standalone, 41 banked after 3 in-TU decl-conflict drops.
  gate_main clean rebuild -> 143dbb89 BYTE-IDENTICAL, then full-fleet R22 213/213.
  main stubs 996 -> 955; main REAL 92 -> 133 (incl. propagated/dedup credit).
- took 5 attempts; each exposed a real defect, the last one substantive:
  * conflict checker too coarse (u8 D_x == u8 D_x[])            -> fixed + NC'd
  * my pkill pattern matched its own shell                       -> stop shell process-matching
  * FALSE PASS: sha() read a stale binary when the build failed  -> rm output + check returncode
  * bisect burned clean rebuilds; the compiler names the culprit -> read the error instead
  * THE REAL BUG: func_8002A234 stored to the WRONG GLOBALS (v1->D_80078EE8/0->D_80078EE4,
    target is the reverse). 2 bytes, both at %lo relocation offsets.
- STANDING CAVEAT (write this into the wave prompt): match_one MASKS jal/HI16/LO16, so it
  verifies INSTRUCTION SHAPE, NOT SYMBOL IDENTITY. A draft that calls the wrong function or
  stores to the wrong global passes standalone every time. Only the whole-binary gate sees it
  — same class as the PsyQ symbol-name errors in waves F/G.
2026-08-15 05:35:59 -06:00
Drew T b8dbf6f6a7 feat(phase-31): wave J — 34 MAIN functions banked (main 4 -> 38), R22 213/213
- first full wave against the main EXE: 40 atlas mass cards -> 39/40 standalone (98%), ALL haiku.
  main drafts exactly like an overlay; the only special handling is the gate path.
- gated via the clean-rebuild batch path: substitute -> make extract BINARY=main -> make build
  BINARY=main -> 143dbb89 BYTE-IDENTICAL; then full-fleet R22 213/213. main stubs 1030 -> 996.
- NEW CLASS: in-TU cross-draft declaration conflicts. Batching N drafts into ONE .c means their
  externs must agree with EACH OTHER (D_800A4ED4 s16-vs-u16; func_8001C9D0 void/void*/s32).
  Resolved greedily (keep-in-order, drop incompatible) at a cost of 5 recoverable drafts.
- the recovery lever, proven on func_80037368: adopt the shared header's decl VERBATIM
  (extern u8 D_80076251;) and adapt at the USE site ((&D_80076251)[i]) instead of redeclaring.
- NOTE on my own tooling: my first conflict detector compared parameter NAMES and wrongly
  dropped 2 good drafts ((s32 *_) vs (s32 *)); comparing type signatures only recovered them.
  Second time tonight a refusal check of mine discarded good work (R39).
2026-08-15 03:57:50 -06:00
Drew T f22d4c7e51 feat(phase-31): wave I — 44/44 banked (perfect sweep), R22 213/213
- 44 atlas mass cards on ov_SC07_007 -> 44/44 standalone MATCH (independently re-verified),
  symfix clean on all 44, and the binary builds BYTE-IDENTICAL with every draft substituted.
- includes a fleet-shared engine_core.h arity fix (func_8017FD2C(u8*) -> ()), so this batch
  needed the full-fleet proof: make clean && extract-all && check-all -> 213/213.
- stubs 11,751 -> 11,706.
- TOOLING NOTE for next session: gate_lane SWALLOWS gate_stage's stderr. Two gate attempts
  reported 'banked 0, near 0, failed 0' -- an unreported crash that reads exactly like a
  legitimate 'nothing banked'. Running gate_stage directly surfaced the real cause at once
  (corpus.CorpusError naming 16 missing .s files, fallout from my own make clean). gate_lane
  should surface stderr / distinguish CRASH from NOTHING-BANKED.
2026-08-15 03:20:13 -06:00
Drew T df24dc091e feat(phase-31): FIRST 4 MAIN-EXE FUNCTIONS BANKED — main is not blocked, it needs clean-rebuild gating
- func_80013228, func_8001CB00, func_800142C8 (src/800.c) + func_8001099C (src/boot.c, the -O0
  boot module) all byte-gated together: make clean && make extract BINARY=main && make build
  BINARY=main -> 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL.
- these are the drafts the incremental gate rejected 0/4 last night. The drafts were CORRECT;
  the gate path was wrong. R22's own rationale names this exact trap: psyq_integrate rewrites
  the .ld in place, so an incremental build re-runs it on an already-rewritten script and
  produces a FALSE diff. main cannot be gated incrementally -- it needs make clean first.
- main was 0.5% matched and treated as the project's hardest remaining mass. It is minable.
2026-08-15 03:10:28 -06:00
Drew T b4537b86c0 feat(phase-31): worker gate — +34 fns x0 propagated (fleet 95.4%) 2026-08-15 02:44:58 -06:00
Drew T 3d58d596fd feat(phase-31): worker gate — +3 fns x0 propagated (fleet 95.4%) 2026-08-15 02:10:09 -06:00
Drew T fc01c01bb1 feat(phase-31): worker gate — +32 fns x0 propagated (fleet 95.4%) 2026-08-15 01:49:32 -06:00
Drew T a024049279 feat(phase-31): worker gate — +6 fns x0 propagated (fleet 95.3%) 2026-08-15 01:25:06 -06:00
Drew T 32ce39bb12 feat(phase-31): propagate func_801898C8 (gate lane) 2026-08-15 01:18:03 -06:00
Drew T 39ca4b70a3 feat(phase-31): worker gate — +50 fns x0 propagated (fleet 95.3%) 2026-08-15 01:15:39 -06:00
Drew T 587a98cb32 feat(phase-31): propagate func_801815DC (gate lane) 2026-08-15 00:30:11 -06:00
Drew T 54f7575330 feat(phase-31): propagate func_8017FA58 (gate lane) 2026-08-15 00:30:01 -06:00
Drew T cdf35c80db feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:29:46 -06:00
Drew T b833d8b50b feat(phase-31): worker gate — +2 fns x0 propagated (fleet 95.3%) 2026-08-15 00:28:54 -06:00
Drew T 315e317d34 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:28:03 -06:00
Drew T 14fe335537 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:27:09 -06:00
Drew T 5266f80310 feat(phase-31): propagate func_8017DAC4 (gate lane) 2026-08-15 00:24:48 -06:00
Drew T 1db86c257c feat(phase-31): propagate func_8018C3F0 (gate lane) 2026-08-15 00:24:23 -06:00
Drew T 00e79e7764 feat(phase-31): propagate func_8018C1E0 (gate lane) 2026-08-15 00:24:13 -06:00
Drew T e438963a00 feat(phase-31): propagate func_8018B614 (gate lane) 2026-08-15 00:24:03 -06:00
Drew T d7c3f880ce feat(phase-31): propagate func_8018B660 (gate lane) 2026-08-15 00:23:53 -06:00
Drew T 26e1017081 feat(phase-31): propagate func_8018BDA4 (gate lane) 2026-08-15 00:23:44 -06:00
Drew T ea60d4bf2a feat(phase-31): propagate func_801803BC (gate lane) 2026-08-15 00:23:18 -06:00
Drew T da135fb006 feat(phase-31): propagate func_80181648 (gate lane) 2026-08-15 00:23:08 -06:00
Drew T 78e9a90dd6 feat(phase-31): propagate func_80183604 (gate lane) 2026-08-15 00:22:15 -06:00
Drew T 44e6df94f3 feat(phase-31): propagate func_8017FD28 (gate lane) 2026-08-15 00:22:05 -06:00
Drew T b6daf72510 feat(phase-31): propagate func_8017FD88 (gate lane) 2026-08-15 00:21:56 -06:00
Drew T 62b488d706 feat(phase-31): propagate func_8017FAAC (gate lane) 2026-08-15 00:21:46 -06:00
Drew T aeabe3d485 feat(phase-31): propagate func_8017F174 (gate lane) 2026-08-15 00:21:37 -06:00
Drew T 3887005068 feat(phase-31): propagate func_8017DBDC (gate lane) 2026-08-15 00:21:27 -06:00
Drew T 75b01f0133 feat(phase-31): propagate func_8017EBC8 (gate lane) 2026-08-15 00:20:47 -06:00
Drew T 0d3bed88aa feat(phase-31): propagate func_80182630 (gate lane) 2026-08-15 00:19:24 -06:00
Drew T 1f997192c3 feat(phase-31): propagate func_80189898 (gate lane) 2026-08-15 00:19:15 -06:00
Drew T 2fa5515136 feat(phase-31): propagate func_8017BFEC (gate lane) 2026-08-15 00:19:06 -06:00
Drew T 575efd6ef3 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:18:55 -06:00
Drew T cf11220807 feat(phase-31): worker gate — +2 fns x0 propagated (fleet 95.3%) 2026-08-15 00:17:56 -06:00
Drew T b9bd116696 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:16:57 -06:00
Drew T 92f6cdd8ae feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:16:04 -06:00
Drew T 2ff02e5210 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:15:11 -06:00
Drew T 3f567d5578 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:14:12 -06:00
Drew T 041ebf31c8 feat(phase-31): worker gate — +5 fns x0 propagated (fleet 95.3%) 2026-08-15 00:13:18 -06:00
Drew T 27a879835e feat(phase-31): worker gate — +12 fns x0 propagated (fleet 95.3%) 2026-08-15 00:12:28 -06:00
Drew T 97c1ddf0d3 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:11:19 -06:00
Drew T baa488ad94 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:09:20 -06:00
Drew T 0fa386c14d feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:08:27 -06:00
Drew T da3129f6f7 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:07:34 -06:00
Drew T 4bc9a0980a feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:06:40 -06:00
Drew T b74ab90a96 feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:05:44 -06:00
Drew T 13a01a36ee feat(phase-31): worker gate — +1 fns x0 propagated (fleet 95.3%) 2026-08-15 00:04:49 -06:00