Commit Graph

2515 Commits

Author SHA1 Message Date
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
Drew T c4f2243598 feat(decomp): worker gate — +4 fns x0 propagated (fleet 95.8%) 2026-08-17 14:12:59 -06:00
Drew T 1ae22b4599 feat(decomp): worker gate — +10 fns x0 propagated (fleet 95.8%) 2026-08-17 14:10:42 -06:00
Drew T 4b2a9c8458 feat(decomp): worker gate — +6 fns x0 propagated (fleet 95.8%) 2026-08-17 14:09:07 -06:00
Drew T cbf9c3faae feat(decomp): propagate func_801860C0 (gate lane) 2026-08-17 14:07:04 -06:00
Drew T a6541fd87e feat(decomp): worker gate — +16 fns x0 propagated (fleet 95.8%) 2026-08-17 14:05:26 -06:00
Drew T def09a34ff feat(decomp): worker gate — +12 fns x0 propagated (fleet 95.8%) 2026-08-17 14:02:44 -06:00
Drew T 73b5773d0d feat(decomp): worker gate — +11 fns x0 propagated (fleet 95.8%) 2026-08-17 13:59:51 -06:00
Drew T 5df5081fd5 feat(decomp): worker gate — +13 fns x0 propagated (fleet 95.8%) 2026-08-17 13:56:28 -06:00
Drew T 572d73eb4b chore(phase-31): regenerate frontier atlas after the S54 banks (4,787 groups / 11,039 open instances / 550,155 ins) 2026-08-17 13:09:51 -06:00
Drew T 7928e7940f docs(phase-31): S54 log — wave T 70/70 banked, 24 leftovers, 49 mechanical siblings, §192/§193, R22 213/213 2026-08-17 12:58:45 -06:00
Drew T 2ae87fc838 feat(phase-31): S54 wave-T harvest — cookbook §193 (9 laws) + the card's banked-twin pointer
19 agents over wave T's 71 index_gap reports: 5 cluster readers, then one adversarial verifier per
candidate defaulting to REJECT. Result: 9 CONFIRMED, 5 REJECTED, and 61 of 71 gaps answered by a
section that ALREADY EXISTS — a retrieval problem, not a knowledge problem.

§193-A is the fix for that retrieval problem, and it is a construction invariant, not drainage: a
wave card's "exemplar"/"sibs" come from the atlas's OPEN set (atlas.py:96 load_open -> corpus.stubs,
:657 max over open members), so they are stubs 0/34 and 0/146 measured on wave T — and 0% at any
project maturity. Meanwhile atlas.py:505-536 already computes a MATCHED-pool twin (pool = sig -
stubs) and build_wave_atlas kept only its similarity score while discarding the identity. Cards now
carry seed_ref + the "M:" matched kNN neighbours; verified on a fresh draw, seed_ref resolves BANKED
4/4 where exemplar resolves banked 0/12.

Two of the nine refute existing sections in place: §193-B byte-refutes §43's "the (s16)param_of_s32
cast form CANNOT reproduce this" (the decider is combine.c:929's cross-call guard, not regalloc),
and §193-G shows §164-54's "scope to >=4 arms" bound is byte-wrong (balance_case_nodes splits at
i > 2). §193-C bounds §8/§48-A1's cross-jump refund to TAILS only — gcc-2.7.2 has no prefix merge.
2026-08-17 12:30:38 -06:00
Drew T 4792b02bfa feat(decomp): worker gate — +4 fns x0 propagated (fleet 95.7%) 2026-08-17 12:27:53 -06:00
Drew T 020dc8a27e refactor(ov_SC02_005): hoist 3 typedefs above the stubs that need them (byte-neutral, null-control verified) 2026-08-17 12:26:53 -06:00
Drew T 45aad382ea feat(phase-26): h_seq family sweep — 43 member-matches banked via remap_hseq 2026-08-17 12:25:38 -06:00
Drew T d73fe15310 feat(decomp): worker gate — +8 fns x0 propagated (fleet 95.7%) 2026-08-17 12:17:44 -06:00
Drew T 6506ef5333 feat(decomp): worker gate — +10 fns x0 propagated (fleet 95.7%) 2026-08-17 12:14:59 -06:00
Drew T b87c179290 feat(decomp): propagate func_8018655C (gate lane) 2026-08-17 12:13:52 -06:00
Drew T edcb200d4b feat(decomp): propagate func_80188670 (gate lane) 2026-08-17 12:13:37 -06:00
Drew T 99687da19d feat(decomp): propagate func_80187090 (gate lane) 2026-08-17 12:13:23 -06:00
Drew T a8f15a58cd feat(decomp): propagate func_801867F8 (gate lane) 2026-08-17 12:12:56 -06:00
Drew T eeff5eeaaa feat(decomp): propagate func_80188828 (gate lane) 2026-08-17 12:12:33 -06:00