Commit Graph

2503 Commits

Author SHA1 Message Date
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
Drew T dada0b1b82 feat(decomp): propagate func_80187300 (gate lane) 2026-08-17 12:12:18 -06:00
Drew T de5301b4ff feat(decomp): propagate func_80188478 (gate lane) 2026-08-17 12:11:57 -06:00
Drew T c160e4c593 feat(decomp): worker gate — +14 fns x0 propagated (fleet 95.7%) 2026-08-17 12:11:40 -06:00
Drew T 70b572854d feat(decomp): worker gate — +17 fns x0 propagated (fleet 95.7%) 2026-08-17 12:08:56 -06:00
Drew T cc789d5130 feat(decomp): worker gate — +21 fns x0 propagated (fleet 95.7%) 2026-08-17 12:03:13 -06:00
Drew T 85b39b3253 feat(decomp): main leftover bank — func_800173DC (§180 sweep, byte-identical) 2026-08-17 12:02:08 -06:00
Drew T 65ed788eb4 feat(decomp): propagate func_80181170 (gate lane) 2026-08-17 11:28:55 -06:00
Drew T 06365e6f9a feat(decomp): worker gate — +4 fns x0 propagated (fleet 95.7%) 2026-08-17 11:28:38 -06:00
Drew T 93922b98c7 feat(decomp): worker gate — +1 fns x0 propagated (fleet 95.7%) 2026-08-17 11:27:27 -06:00
Drew T 3d1fd60eb9 feat(decomp): worker gate — +14 fns x0 propagated (fleet 95.7%) 2026-08-17 11:21:46 -06:00
Drew T bb34eac42f fix(phase-31): S54 — four measured over-refusals in the overlay pre-gate path
Each one refused byte-verified work; each fix is probed, not reasoned:
* built-in redeclaration: a cc1 probe shows two conflicting "memcpy" declarations give
  "warning: conflicting types for built-in function" + exit 0, while the same pair on a
  non-builtin name errors. Every overlay TU in the fleet declares memcpy twice and compiles
  today -> CONFLICTING-EXTERN on a builtin is now WARN.
* driver mismatch: overlays bank via gate_lane -> gate_stage -> harvest_verify, which strips
  every typedef the target TU provides; pregate_check modelled gate_main's hoist/strip instead
  and reported DUPLICATE-TYPEDEF for exactly the duplicates the real gate removes.
  substitute() now takes an optional per-draft transform; pregate passes the overlay one.
* block-scope typedefs: two functions may each declare their own typedef inside their bodies
  (that is how a draft stays self-contained for match_one). _typedefs now honours the brace
  depth map the caller already computed.
* project scalar aliases: include/common.h's "typedef s32 M2C_UNK;" makes "extern s32 D_x" and
  "extern M2C_UNK D_x" the same declaration; _ALIASES now DERIVES those from common.h (R33).

Measured on the 5 leftover slates: 28 drafts, all re-verified MATCH by match_one, went from
"0 kept / phantom FAILs" to main 2 clean, ov_SC04_011 15 clean, ov_SC03_028 1 clean,
ov_SC06_029 4 + 1 named TU edit, ov_SC02_005 2 real TYPEDEF-USED-ABOVE-DEFINITION.
2026-08-17 11:20:32 -06:00
Drew T 85671bc1f7 feat(phase-31): S54 — wave T selector (--one-per-gid, --rank total) + the pre-gate ladder learns to see overlays (§192)
build_wave_atlas: --one-per-gid collapses same-skeleton siblings to one card and defers
them to <out>.siblings.json for the post-bank family_sweep remap (R32 accounting asserted);
--rank total ranks gate groups by DELIVERED mass (card + deferred siblings). Measured on the
wave-T draw: 6,557 drafted ins carrying 12,709 sibling ins behind 69 of 71 gids = 19,266
instructions of potential for 71 agents, vs 9,985 behind 57 under --rank mass. R39 NC: the
flag is byte-inert on a pool whose gids are unique.

gate_main/pregate_check (§192): three defects that made the pre-gate ladder main-only while
reporting "clean" on overlay slates — (1) resolve_conflicts/substitute hardcoded
corpus.stubs('main') -> per-binary _stubs_for(); (2) sym_of returned the keyword `void` for
every `extern void (*D_x[])(...)`, manufacturing 192 phantom CONFLICTING-EXTERNs (NC over
5,526,100 declarations: 189,301 changed verdicts, 0 regressions); (3) `void f()` and
`void f(void)` were normalized together, costing 40 more phantoms — C89's unspecified-
parameter rule is now gate_main.sig_conflict. §192b: the tool refuses when it substituted 0
files, and prints the per-draft [DROP] reasons it used to compute and discard.

Same overlay slate now reports 2 failures, both real (duplicate typedef; memcpy declared two
ways). Cookbook §192/§192b + index regenerated (585 sections).
2026-08-17 11:00:14 -06:00