Commit Graph

2536 Commits

Author SHA1 Message Date
Drew T 2cd8acff4b feat(decomp): worker gate — +3 fns x0 propagated (fleet 96.0%) 2026-08-18 10:30:53 -06:00
Drew T 72fb5041cd feat(decomp): worker gate — +12 fns x0 propagated (fleet 96.0%) 2026-08-18 10:29:00 -06:00
Drew T 7c82413959 feat(decomp): propagate func_80185D10 (gate lane) 2026-08-18 10:26:34 -06:00
Drew T 5d9caeaac1 feat(decomp): worker gate — +15 fns x0 propagated (fleet 96.0%) 2026-08-18 10:25:16 -06:00
Drew T 9a5194b7af feat(decomp): worker gate — +14 fns x0 propagated (fleet 96.0%) 2026-08-18 10:21:23 -06:00
Drew T 8f329aab15 feat(decomp): worker gate — +20 fns x0 propagated (fleet 96.0%) 2026-08-18 10:17:44 -06:00
Drew T 894f3d5ce1 fix(phase-31): sym_of reads the asm-label alias — 1,210 verdicts corrected, 0 regressions
Second instance of the §192 defect class, found by wave Y's ov_SC02_017 slate. The project's own
§37/§124 idiom spells a renamed symbol as `extern s32 gVecX __asm__("D_80126B5C");`, and sym_of's
generic branch matched `__asm__` -- an identifier followed by '(' -- before reaching the real one.
Every aliased declaration therefore collided with every other one under the name `__asm__`.
Measured cost on one slate: 1 byte-verified draft DROPPED and 2 phantom CONFLICTING-EXTERN
failures, on an idiom this same session used to RECOVER work.

NC over src/ plus wave Y's drafts: 1,210 changed verdicts, every one `__asm__` -> the real alias
identifier (899 of them one symbol, aD800B9A02 -- the idiom is fleet-wide), 0 regressions.
2026-08-18 10:16:36 -06:00
Drew T b01a61f0ee chore(phase-31): checkpoint refresh after wave X (475 banked, fleet crosses 96.0% instr-weighted) 2026-08-18 09:04:50 -06:00
Drew T a89d7ae0af feat(phase-31): §199 wave-X harvest (7 laws) — and §189-A's inference direction is byte-refuted
13 agents, 63 gap reports: 7 CONFIRMED, 2 REJECTED, 56 already-covered. TWO of the seven correct
laws banked EARLIER THE SAME SESSION, from two independent readers -- the adversarial-verifier
design earning its cost.

§189-A (banked this morning) claimed an interloper between a split constant's lui/ori PROVES the
target wrote two source steps, because the halves are LUID-adjacent and "no statement order and no
pin can put a third constant between them". Byte-refuted four ways: the banked one-statement slice
`prim.col[1] = 0x101010;` compiles with SEVEN insns between its lui and ori; the two-step spelling
§189-A prescribes is BYTE-IDENTICAL (the fix is inert); moving an unrelated statement moves a third
constant in and out of the gap; and one separated pair is 0x88888889 -- gcc's synthesized reciprocal
magic for a `/ 0x3C`, a constant with NO source spelling, making "the target wrote two steps"
unsatisfiable. rank_for_schedule tests INSN_PRIORITY FIRST (sched.c:2395) and reaches the LUID
tie-break only at :2428, so the derivation dropped its equal-priority scope; the real separator is
the BIRTHING BOOST (birthing_insn_p, gated reg_n_sets == 1), which the split pair can never have
because try_split gives its pseudo two sets. Verified off cc1's own -dS dump, which also corrects
the submitting reader: sched1 is a BACKWARD list scheduler, so it is the LUI that sinks, not the ORI.
8 separated pairs across 5 functions in 3 binaries. §189-A's split-TIMING half survives and now
carries a correction banner.

Recovery note: this run was killed by the session usage limit with 3 verifiers outstanding;
resumeFromRunId replayed 10 cached agents and re-ran 3 for 398k tokens vs the original 1.31M.
2026-08-18 09:04:26 -06:00
Drew T 2b1cb17ae7 feat(phase-26): h_seq family sweep — 1 member-matches banked via remap_hseq 2026-08-18 04:24:17 -06:00
Drew T 61c743c0cf feat(decomp): worker gate — +1 fns x0 propagated (fleet 96.0%) 2026-08-18 04:22:53 -06:00
Drew T 335140a68b feat(decomp): propagate func_801805BC (gate lane) 2026-08-18 04:21:09 -06:00
Drew T b6992adeab feat(decomp): propagate func_8017D4F0 (gate lane) 2026-08-18 04:19:26 -06:00
Drew T 6f2c053372 feat(decomp): propagate func_8017ED5C (gate lane) 2026-08-18 04:18:43 -06:00
Drew T 1731aaf201 feat(decomp): propagate func_801812FC (gate lane) 2026-08-18 04:18:28 -06:00
Drew T 99cff86762 feat(decomp): worker gate — +19 fns x0 propagated (fleet 96.0%) 2026-08-18 04:16:43 -06:00
Drew T 6e73f738fb feat(decomp): propagate func_8017F154 (gate lane) 2026-08-18 04:14:34 -06:00
Drew T cafedeb572 feat(decomp): propagate func_8018048C (gate lane) 2026-08-18 04:13:57 -06:00
Drew T d62346d2b8 feat(decomp): propagate func_801828A0 (gate lane) 2026-08-18 04:12:12 -06:00
Drew T c5ab96fe82 feat(decomp): worker gate — +18 fns x0 propagated (fleet 96.0%) 2026-08-18 04:11:49 -06:00
Drew T 57d0e4fa37 feat(decomp): worker gate — +24 fns x0 propagated (fleet 96.0%) 2026-08-18 04:01:20 -06:00
Drew T f2cc730ae8 chore(phase-31): S54 checkpoint refresh + wave-metrics row for wave W (412 banked, fleet 95.9/91.5/97.04) 2026-08-18 02:20:59 -06:00
Drew T 5f174cce53 feat(phase-31): §197 wave-W harvest + §198 UNKNOWN promoted to a default lever lane
HARVEST (10 agents, 68 gap reports): 4 CONFIRMED, 3 REJECTED, 41 already-covered. Yield fell from
14 because the readers were seeded with §193 AND §194 AND §195 -- three sessions of laws off the
table before they started, which is the flywheel working.

§197-A IS BANKED AS ONE ENTRY WITH ITS ATTRIBUTION FLAGGED CONTESTED. Two verifiers independently
confirmed the same phenomenon (lhu;sll 16;sra 16+K where the target has lh;sra K) and attributed it
to DIFFERENT passes -- one to cse's fold_rtx associative block with -da dumps showing the middle insn
already gone in x.i.cse, one to combine preferring the count-merge over forming lh. R34 forbids
treating agreement between disagreeing oracles as corroboration, so the observable, the tell and the
cure (a zero-byte asm re-tie; a fresh temp works with no second SET at all) are banked, and the pass
question is recorded as open. Both verifiers independently byte-refuted §136 type-form rule 9's cure:
u16 v[4] and SVECTOR v compile BYTE-IDENTICALLY in rule 9's own context. Banner added at rule 9.

§198 (in the tool's own help text): UNKNOWN was excluded from the default --levers while the wave
PROMPT told every agent "UNKNOWN does NOT mean hard -- it means the atlas could not name a lever."
The tool was silently overriding the doctrine. Measured: UNKNOWN held 607 of 1,179 in-band members,
more than every other lane combined; wave W drew 73 cards from it into 3 gate groups (24.3 drafts per
rebuild vs wave V's 7.8) for 71/71 drafted, 68 banked. Recorded cost: UNKNOWN groups are mostly
singletons, so the free sibling remap yielded ZERO where waves T/U/V got 49/34/25.

Also releases func_80185480 and func_8017EC98 from wave W's spent-card file -- their agents died on
server rate-limiting and no draft exists, so they must not be marked already-waved.
2026-08-18 02:17:23 -06:00
Drew T a7a2c09682 feat(decomp): worker gate — +8 fns x0 propagated (fleet 95.9%) 2026-08-18 01:49:59 -06:00
Drew T 10c51746a8 feat(decomp): worker gate — +34 fns x0 propagated (fleet 95.9%) 2026-08-18 01:35:54 -06:00
Drew T 5fcd072bcf feat(decomp): worker gate — +26 fns x0 propagated (fleet 95.9%) 2026-08-18 01:30:13 -06:00
Drew T e24220aabe feat(phase-31): §196 decl_prior — the fleet's declaration consensus as a wave-card field
Wave-V token accounting picked this lever: drafting is 88.3% of a wave's output tokens (repair 8.4%,
reconcile 3.2%) at 9.3 match_one compiles per agent, so the leverage is in what a drafter must GUESS
before its first compile. Two such guesses are answered in the tree and were on nobody's card:
callee arity/return type (§195-A: NO positive tell exists in the asm, the procedure is a two-arity
A/B) and global type (every CONFLICTING-EXTERN drop). tools/decl_prior.py indexes 4,162 files ->
67,094 symbols (9,739 with a banked DEFINITION); cards now carry the rows for their own target's
symbols, ranked DEF > TU (authoritative, wave law 2) > FLEET modal + rivals with counts.

Control draw: 63 rows over 10 cards, 83% already settled by the destination TU (still a saving --
the agent was grepping for them by hand), 17% with no local answer at all.

Third instance in one session of the same law (§193-A seed_ref, §194-E tu_ref, §196): the answer was
already computed and the card did not carry it.
2026-08-17 23:49:11 -06:00
Drew T c845e0dcfa chore(phase-31): S54 session checkpoint + wave-metrics rows for U and V
344 functions banked (235 gated heads + 108 mechanical siblings + 1 main), fleet 95.9%
instr-weighted / 91.4% distinct / 97.02% fn-count, R22 213/213 from a clean tree after each wave.
The checkpoint records the five results that outlive the count (Reconcile-inside-the-wave, §192's
main-only pre-gate ladder, §193-A/§194-E's dead card pointer, §195-D's invisible internal j, and the
already-covered majority in every harvest) and the next-session order of operations.
2026-08-17 22:34:42 -06:00
Drew T 0d39cd97e1 feat(phase-31): S54 wave-V harvest — cookbook §195 (14 laws) + close the internal-j blind spot in masked_diff
32 agents over wave V's 67 index_gap reports: 14 CONFIRMED, 9 REJECTED, 76 already-covered (the
third harvest this session; readers seeded with §193 AND §194 so neither could be re-derived).

THE HEADLINE IS A DEFECT IN OUR OWN VERIFIER (§195-D). masked_diff.mask_for short-circuited on the
OPCODE -- `if (word >> 26) in (2, 3): return 0` -- ahead of the reloc dispatch, so every `j` to a
LOCAL label was dropped from the comparison. The assembler resolves those itself and emits no
relocation, so there was nothing link-time about them. For a loop or switch arm, which label a `j`
targets is the difference between `break` (fall into the shared tail and execute its calls) and
`return` (skip them): byte-proven on ov_SC03_118:func_801825EC, where the banked `break;` and a
call-skipping `return;` variant differ in exactly one word (0800003e vs 08000041) and BOTH reported
MATCH. The blindness reached match_one, the permuter's MaskedScorer, family_cousins.tok and the
atlas similarity tiers at once -- nothing between a draft and the whole-binary gate could see it.
Now the 26-bit field is masked only when reloc_kind == "26" (the linker really does fill it).
R39 control: 35/35 already-banked wave-V drafts still MATCH against their snapshot .s.

Other confirmations of note: §195-A bounds §167-08 with a byte-proven false-negative class (an
argument that DIES at the call is allocated straight into $aN, so its only def is a plain load and
every use reads $aN -- there is no positive tell in either direction, only the two-arity A/B);
§195-B a CALL_INSN does not start a basic block in gcc-2.7.2, so a call-crossing temp can be a
LOCAL-alloc quantity; §195-M frame `vars` is a sequential bump-allocation, unifying §193-I's
CEIL(aggregate,8) term with §165-03/§167-06's 8x-orphan term as one frame_offset walk.
2026-08-17 21:37:23 -06:00
Drew T 200ee2fbeb feat(phase-26): h_seq family sweep — 25 member-matches banked via remap_hseq 2026-08-17 21:04:21 -06:00
Drew T 3e859e75c2 feat(decomp): worker gate — +3 fns x0 propagated (fleet 95.9%) 2026-08-17 21:01:52 -06:00
Drew T 4bf5951f03 feat(decomp): propagate func_8017E024 (gate lane) 2026-08-17 21:00:48 -06:00
Drew T c308986c25 feat(decomp): propagate func_8017D484 (gate lane) 2026-08-17 21:00:11 -06:00
Drew T 24d5fa38bb feat(decomp): worker gate — +8 fns x0 propagated (fleet 95.9%) 2026-08-17 20:59:42 -06:00
Drew T 49b79b4469 feat(decomp): worker gate — +10 fns x0 propagated (fleet 95.9%) 2026-08-17 20:55:45 -06:00
Drew T 689497dc7d feat(decomp): worker gate — +6 fns x0 propagated (fleet 95.9%) 2026-08-17 20:54:12 -06:00
Drew T de0492dd60 feat(decomp): propagate func_80184E4C (gate lane) 2026-08-17 20:52:49 -06:00
Drew T 6b29a5c4af feat(decomp): worker gate — +7 fns x0 propagated (fleet 95.8%) 2026-08-17 20:51:14 -06:00
Drew T aca487291d feat(decomp): propagate func_8018178C (gate lane) 2026-08-17 20:49:52 -06:00
Drew T 6e614720f6 feat(decomp): worker gate — +9 fns x0 propagated (fleet 95.8%) 2026-08-17 20:49:06 -06:00
Drew T c78822f601 feat(decomp): worker gate — +8 fns x0 propagated (fleet 95.8%) 2026-08-17 20:46:00 -06:00
Drew T dce9b8f9fc feat(decomp): propagate func_80181E58 (gate lane) 2026-08-17 20:44:37 -06:00
Drew T 853a97ae57 feat(decomp): propagate func_80184B94 (gate lane) 2026-08-17 20:43:57 -06:00
Drew T 48936c8543 feat(decomp): worker gate — +7 fns x0 propagated (fleet 95.8%) 2026-08-17 20:43:20 -06:00
Drew T 063d4477d0 feat(decomp): worker gate — +10 fns x0 propagated (fleet 95.8%) 2026-08-17 20:40:02 -06:00
Drew T 6025676745 chore(phase-31): regenerate progress + family map after wave U (fleet 95.8% instr-weighted) 2026-08-17 19:18:14 -06:00
Drew T c5d7653801 feat(phase-31): S54 wave-U harvest — cookbook §194 (14 laws) + destination-TU locality on the card
26 agents over wave U's 64 index_gap reports (7 cluster readers, one adversarial verifier per
candidate defaulting to REJECT, seeded with §193 so it could not be re-derived): 14 CONFIRMED,
5 REJECTED, 44 already answered by an existing section (wave T: 9/5/61).

TWO OF THE 14 CORRECT WORK BANKED THE SAME DAY, and both are now cross-banner'd:
* §194-E — `exemplar` is not merely un-banked (§193-A): it names the card's OWN target on 42/73
  wave-U and 36/71 wave-T cards, and the `seed_ref` §193-A shipped is same-binary 0/51, so the card
  still carried ZERO destination-TU locality. Fixed both ways: a self-pointing exemplar is now
  emitted as null, and cards carry `tu_ref` — banked functions in the card's OWN .c ranked by
  symbols shared with the TARGET's .s relocations (62% of wave-T targets had such a neighbour vs
  19% for the cross-overlay literal grep). Operand-only extraction: a naive uppercase-word regex
  read the .s comment column's hex words as symbol names (34 "symbols", 31 of them hex).
* §194-N — §193-D's C dial is misstated: the lever is a SURVIVING CODE_LABEL, not "a label between
  the block and the call". jump_optimize deletes any label with LABEL_NUSES == 0 long before sched1
  and rewrites a C user label into NOTE_INSN_DELETED_LABEL, which is not a basic-block boundary.

Highlights of the rest: §194-A a zero-byte fence is a one-way wall RELATIVE to the statement being
steered (after = emit-first), and the barrier predicate is volatile-or-colon-less, not the "memory"
clobber; §194-J back-to-back identical stores are deleted by flow.c's last_mem_set unless volatile;
§194-K blinding sched1's alias oracle with a second SET is the first zero-byte dependence-CREATING
lever; §194-M a store in a conditional branch's delay slot proves its C statement DOMINATES the
branch.
2026-08-17 15:14:00 -06:00
Drew T fe3a723f9d feat(phase-26): h_seq family sweep — 35 member-matches banked via remap_hseq 2026-08-17 14:16:16 -06:00
Drew T c835284616 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.8%) 2026-08-17 14:15:09 -06:00
Drew T 0bc840ccc2 refactor(ov_SC02_017): retype func_80185B5C's two decls void->s32 (unspecified params), byte-neutral null-control verified 2026-08-17 14:14:15 -06:00