From f8e522ea0df68850b4b0941b8b82951b5dd69efd Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 1 Sep 2026 13:34:21 -0600 Subject: [PATCH] =?UTF-8?q?docs(cookbook):=20=C2=A7378b=20=E2=80=94=20the?= =?UTF-8?q?=20four=20decl-blocker=20variants,=20and=20the=20two=20places?= =?UTF-8?q?=20=C2=A7378=20does=20NOT=20apply?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correcting my own guidance from earlier today. §378 gave the self-caller chain; three more variants appeared within hours and two of them BREAK the chain. Variant 3 (NEW, byte-proven ov_SC04_018/func_8017F35C, banked): conflicting RETURN type on a decl that is ALREADY no-proto, where the symbol is ADDRESS-TAKEN rather than called. --any-proto has nothing to relax and cast_self_callers has no call site to cast; --sync-decls ALONE fixes it, and is safe precisely because an address-taken site has no arguments to convert. Variant 4 (REFUTATION of what I wrote in the playbook this morning): "run the same chain on the callee the diagnostic names" is wrong at scale. Applied to func_8012AD44 in ov_SC07_000 it no-protoed 60 caller decls and the binary went RED (265b24bb vs 9dbe4241); reverted via journal. The self case is safe because step 2 casts the call sites so the decl change cannot alter argument conversion; for a callee, cast_self_callers correctly refuses and the decl change runs unprotected. It banked main/func_80021D38 only because that callee had ONE decl, not sixty. Rule added: never --any-proto a symbol whose call sites you are not also casting; count the sites first. The chain is a DECISION TABLE, not a sequence to run blindly. --- docs/backlog.md | 304 +++++++++++++++++--------------------- docs/cookbook-index.md | 10 +- docs/matching-cookbook.md | 39 +++++ docs/progress.fleet.md | 104 ++++++------- docs/wave-playbook.md | 13 +- 5 files changed, 245 insertions(+), 225 deletions(-) diff --git a/docs/backlog.md b/docs/backlog.md index 073a54e6a..7ecf16eba 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -2,175 +2,143 @@ > Generated by `tools/backlog.py render` from `.run/backlog.jsonl`. These are functions the Phase-21 automation got **close** on but did NOT byte-match. The whole-binary byte-gate is the sole arbiter (G3/P9): **byte-matches bank and are NOT listed here** — only genuine near-misses/blockers are. Ranked by hand-session priority: **reach** (×N propagation leverage) → **closeness** (match_one mismatch count, lower = closer) → **size**. Each row's `best_draft` is the closest C the machine reached — resume from there. -**Open near-misses:** 168 · by status {'near': 119, 'failed': 49} · by class {'struct': 1, 'schedule': 1, 'WAVE': 2, None: 160, 'LENGTH-DRIFT': 2, 'regalloc-perm-clamp': 1, 'STRUCT': 1} +**Open near-misses:** 136 · by status {'near': 96, 'failed': 40} · by class {'struct': 1, 'WAVE': 2, None: 131, 'LENGTH-DRIFT': 1, 'regalloc-perm-clamp': 1} | # | addr | reach | class | nins | status | closeness | where it stuck | best draft | |--:|------|------:|-------|-----:|--------|----------:|----------------|------------| | 1 | func_8017E224 | 1 | struct | 29 | near | 0 | none — MATCH (unaligned 8-byte memcpy of global onto stack + cond byte incr) | `.run/backlog_drafts/func_8017E224.c` | -| 2 | func_80184D50 | 1 | schedule | 98 | near | 0 | none — MATCH (98 ins, relocation-masked) | `.run/backlog_drafts/func_80184D50.c` | -| 3 | func_8017FAAC | 1 | WAVE | 154 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017FAAC.c` | -| 4 | func_801803A0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801803A0.c` | -| 5 | func_8017FFD0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017FFD0.c` | -| 6 | func_8017FE88 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017FE88.c` | -| 7 | func_8017F098 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F098.c` | -| 8 | func_801847FC | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_801847FC.c` | -| 9 | func_8017EB30 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017EB30.c` | -| 10 | func_8017F2D4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017F2D4.c` | -| 11 | func_8017EEEC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017EEEC.c` | -| 12 | func_8017FE0C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017FE0C.c` | -| 13 | func_8017D72C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017D72C.c` | -| 14 | func_80182438 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80182438.c` | -| 15 | func_80181804 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181804.c` | -| 16 | func_8017E7CC | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017E7CC.c` | -| 17 | func_80180E84 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80180E84.c` | -| 18 | func_8017D818 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017D818.c` | -| 19 | func_8018000C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8018000C.c` | -| 20 | func_800D00E4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_800D00E4.c` | -| 21 | func_8017D6CC | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017D6CC.c` | -| 22 | func_80180E68 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80180E68.c` | -| 23 | func_80183FC8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80183FC8.c` | -| 24 | func_80181CB8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181CB8.c` | -| 25 | func_80182DCC | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80182DCC.c` | -| 26 | func_8017ECB4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017ECB4.c` | -| 27 | func_8017F8B8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F8B8.c` | -| 28 | func_8017F950 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F950.c` | -| 29 | func_80181E88 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181E88.c` | -| 30 | func_80182170 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80182170.c` | -| 31 | func_80188E3C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80188E3C.c` | -| 32 | func_800D0488 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_800D0488.c` | -| 33 | func_8017F6C0 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F6C0.c` | -| 34 | func_8016AE5C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8016AE5C.c` | -| 35 | func_801A11D4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_801A11D4.c` | -| 36 | func_8017E48C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017E48C.c` | -| 37 | func_801827E0 | None | | 23 | near | 1 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=23 target=23 | `.run/wave_eo/shard427/func_801827E0.c` | -| 38 | func_8017E1E8 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017E1E8.c` | -| 39 | func_801AB818 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801AB818.c` | -| 40 | func_80180020 | None | | 231 | near | 2 | resolver DIFF (real-TU rtu_match, 20260826-145551): mine=231 target=231 | `.run/backlog_drafts/func_80180020.c` | -| 41 | func_801A4ACC | None | | 237 | near | 2 | resolver DIFF (real-TU rtu_match, 20260826-145551): mine=237 target=237 | `.run/backlog_drafts/func_801A4ACC.c` | -| 42 | func_801804C8 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801804C8.c` | -| 43 | func_8017E254 | None | LENGTH-DRIFT | None | near | 2 | lenmiss permuter-length route | `.run/backlog_drafts/func_8017E254.c` | -| 44 | func_80180A10 | None | LENGTH-DRIFT | None | near | 2 | lenmiss permuter-length route | `.run/backlog_drafts/func_80180A10.c` | -| 45 | func_80180B84 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_80180B84.c` | -| 46 | func_801809B8 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801809B8.c` | -| 47 | func_801816C8 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801816C8.c` | -| 48 | func_80185840 | None | regalloc-perm-clamp | None | near | 3 | 52/52 ins, 9->3 mismatched. Residual = ONE register identity (clamp result in $a0, target wants $v0). THREE reusable levers found: (1) the §17 zero-reg copy done right — 'register u32 zr __asm__("$0"); c = val + zr;' reproduces the target's non-coalescing 'addu $v1,$v0,$zero' live-range copy, which §52a had called the non-coalescing-delay-slot-copy WALL; (2) 'r = 0x80;' BEFORE a single-armed if (not if/else) is what gets the li into the branch delay slot — reorg's fill_simple_delay_slots BACKWARD scan steals it, whereas any two-arm spelling needs fill_eager_delay_slots' target-thread steal which never fires (53 ins + j/nop); (3) a zero-byte asm fence between the sh and the += stops sched1 hoisting the lui above the store. Permuter seed. | `.run/wave_p31n/ov_SC02_000/func_80185840.c` | -| 49 | func_8017D918 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8017D918.c` | -| 50 | func_80185F4C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80185F4C.c` | -| 51 | func_8018AD74 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8018AD74.c` | -| 52 | func_8018A3CC | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8018A3CC.c` | -| 53 | func_801852B0 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_801852B0.c` | -| 54 | func_8018611C | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_8018611C.c` | -| 55 | func_80182CBC | None | | 28 | near | 7 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=28 target=28 | `.run/backlog_drafts/func_80182CBC.c` | -| 56 | func_801ADA10 | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_801ADA10.c` | -| 57 | func_8017D2AC | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_8017D2AC.c` | -| 58 | func_80181C84 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_80181C84.c` | -| 59 | func_80180EC0 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_80180EC0.c` | -| 60 | func_80183940 | None | | 58 | near | 11 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=58 target=58 | `.run/wave_ex/shard484/func_80183940.c` | -| 61 | func_8017E7E8 | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_8017E7E8.c` | -| 62 | func_8017CDE4 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017CDE4.c` | -| 63 | func_8018FB5C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8018FB5C.c` | -| 64 | func_800D0664 | None | | 22 | near | 19 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=14 target=22 | `.run/backlog_drafts/func_800D0664.c` | -| 65 | func_80181294 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80181294.c` | -| 66 | func_801831D0 | None | | 22 | near | 21 | resolver DIFF (real-TU rtu_match, 20260826-040016): mine=13 target=22 | `.run/backlog_drafts/func_801831D0.c` | -| 67 | func_80183178 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80183178.c` | -| 68 | func_8017F35C | None | | 36 | near | 22 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=35 target=36 | `.run/wave_cn/shard141/func_8017F35C.c` | -| 69 | func_8017EEA4 | None | | 36 | near | 23 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=36 target=36 | `.run/wave_dx/shard220/func_8017EEA4.c` | -| 70 | func_80182FF0 | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_80182FF0.c` | -| 71 | func_8017D4CC | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017D4CC.c` | -| 72 | func_801843E0 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_801843E0.c` | -| 73 | func_800D0100 | None | | 29 | near | 29 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=15 target=29 | `.run/backlog_drafts/func_800D0100.c` | -| 74 | func_801805C0 | None | | 81 | near | 29 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=81 target=81 | `.run/wave_du/shard119/func_801805C0.c` | -| 75 | func_80185214 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80185214.c` | -| 76 | func_800D0A7C | None | | 40 | near | 33 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=29 target=40 | `.run/backlog_drafts/func_800D0A7C.c` | -| 77 | func_80181344 | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_80181344.c` | -| 78 | func_801832E0 | None | | 57 | near | 49 | resolver DIFF (real-TU rtu_match, 20260826-044601): mine=35 target=57 | `.run/wave_g0b/shard8/func_801832E0.c` | -| 79 | func_801808AC | None | | 67 | near | 60 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=41 target=67 | `.run/wave_ec/shard8/func_801808AC.c` | -| 80 | func_8017D610 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D610.c` | -| 81 | func_801808AC | None | | 41 | near | 65 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=67 target=41 | `.run/wave_fa/shard6/func_801808AC.c` | -| 82 | func_800D0C50 | None | | 71 | near | 68 | resolver DIFF (real-TU rtu_match, 20260826-044601): mine=46 target=71 | `.run/backlog_drafts/func_800D0C50.c` | -| 83 | func_800D0B1C | None | | 77 | near | 69 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=49 target=77 | `.run/backlog_drafts/func_800D0B1C.c` | -| 84 | func_801835B0 | None | | 73 | near | 71 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=36 target=73 | `.run/wave_ed/shard3/func_801835B0.c` | -| 85 | func_8017FED8 | None | | 62 | near | 72 | resolver DIFF (real-TU rtu_match, 20260826-004023): mine=78 target=62 | `.run/wave_fb/shard11/func_8017FED8.c` | -| 86 | func_801874E4 | None | | None | near | 73 | residual: 73 mismatch | `.run/backlog_drafts/func_801874E4.c` | -| 87 | func_8017FB04 | None | | 20 | near | 75 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=78 target=20 | `.run/backlog_drafts/func_8017FB04.c` | -| 88 | func_8017FED8 | None | | 78 | near | 75 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=62 target=78 | `.run/wave_ei/shard319/func_8017FED8.c` | -| 89 | func_8017DABC | None | | 78 | near | 75 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=39 target=78 | `.run/wave_dd/shard353/func_8017DABC.c` | -| 90 | func_80180610 | None | | 79 | near | 78 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=31 target=79 | `.run/wave_ck/shard182/func_80180610.c` | -| 91 | func_8017E37C | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017E37C.c` | -| 92 | func_8017FB04 | None | | 83 | near | 80 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=20 target=83 | `.run/wave_eq/shard509/func_8017FB04.c` | -| 93 | func_801805C0 | None | | 22 | near | 81 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=81 target=22 | `.run/wave_ey/shard163/func_801805C0.c` | -| 94 | func_8017D3F4 | None | | 85 | near | 81 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=34 target=85 | `.run/wave_ds/shard302/func_8017D3F4.c` | -| 95 | func_8017E160 | None | | 98 | near | 83 | resolver DIFF (real-TU rtu_match, 20260826-053145): mine=77 target=98 | `.run/wave_g0c/shard9/func_8017E160.c` | -| 96 | func_8017E4DC | None | | 92 | near | 85 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=75 target=92 | `.run/wave_dd/shard160/func_8017E4DC.c` | -| 97 | func_8018006C | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_8018006C.c` | -| 98 | func_80182288 | None | | 41 | near | 88 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=91 target=41 | `.run/backlog_drafts/func_80182288.c` | -| 99 | func_8017EDC0 | None | | None | near | 91 | residual: 91 mismatch | `.run/backlog_drafts/func_8017EDC0.c` | -| 100 | func_8017EB78 | None | | 10 | near | 94 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=95 target=10 | `.run/wave_df/shard365/func_8017EB78.c` | -| 101 | func_80183098 | None | | 104 | near | 98 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=53 target=104 | `.run/wave_cx/shard97/func_80183098.c` | -| 102 | func_8017DAEC | 1 | WAVE | 113 | near | 98 | WAVE: 98 mismatch | `.run/backlog_drafts/func_8017DAEC.c` | -| 103 | func_8017DF70 | None | | 108 | near | 105 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=30 target=108 | `.run/wave_dj/shard178/func_8017DF70.c` | -| 104 | func_80183940 | None | | 110 | near | 106 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=58 target=110 | `.run/backlog_drafts/func_80183940.c` | -| 105 | func_8017F69C | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017F69C.c` | -| 106 | func_8017D508 | None | | None | near | 113 | residual: 113 mismatch | `.run/backlog_drafts/func_8017D508.c` | -| 107 | func_8017F4DC | None | | 73 | near | 114 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=121 target=73 | `.run/wave_cx/shard91/func_8017F4DC.c` | -| 108 | func_8017DB98 | None | | None | near | 115 | residual: 115 mismatch | `.run/backlog_drafts/func_8017DB98.c` | -| 109 | func_80180B3C | None | | 297 | near | 125 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=296 target=297 | `.run/wave_eo/shard478/func_80180B3C.c` | -| 110 | func_80185E68 | 1 | STRUCT | 132 | near | 131 | STRUCT: 131 mismatch | `.run/backlog_drafts/func_80185E68.c` | -| 111 | func_801867D0 | None | | 198 | near | 166 | resolver DIFF (real-TU rtu_match, 20260826-062321): mine=100 target=198 | `.run/wave_g0d/shard11/func_801867D0.c` | -| 112 | func_800CB00C | None | | 123 | near | 168 | resolver DIFF (real-TU rtu_match, 20260826-053145): mine=174 target=123 | `.run/wave_g0c/shard30/func_800CB00C.c` | -| 113 | func_800CB56C | None | | 94 | near | 221 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=234 target=94 | `.run/wave_du/shard263/func_800CB56C.c` | -| 114 | func_801806F8 | None | | 241 | near | 235 | resolver DIFF (real-TU rtu_match, 20260826-062321): mine=72 target=241 | `.run/wave_g0d/shard20/func_801806F8.c` | -| 115 | func_80180ABC | None | | 257 | near | 250 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=49 target=257 | `.run/wave_ci/shard141/func_80180ABC.c` | -| 116 | func_80182184 | None | | 272 | near | 261 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=202 target=272 | `.run/wave_de/shard232/func_80182184.c` | -| 117 | func_8017EC68 | None | | 279 | near | 274 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=341 target=279 | `.run/wave_fa/shard313/func_8017EC68.c` | -| 118 | func_80180B3C | None | | 21 | near | 287 | resolver DIFF (real-TU rtu_match, 20260826-022235): mine=287 target=21 | `.run/wave_eq/shard63/func_80180B3C.c` | -| 119 | func_8016AB6C | None | | 188 | near | 14831 | resolver DIFF (real-TU rtu_match, 20260826-004023): mine=14864 target=188 | `.run/wave_fc/shard132/func_8016AB6C.c` | -| 120 | func_800CB4EC | None | | 37 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-233820): i=20 hi/lo draft D_80126B1A vs target 0x80126B1C =func_80126B1C (splat-derived); i=22 hi/lo draft D_80126B1C vs target 0x80126B1A =func_80126B1A (splat-derived) | `.run/wave_fa/shard370/func_800CB4EC.c` | -| 121 | func_80182564 | None | | 44 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-233820): i=1 hi/lo draft D_80126942 vs target 0x80126940 =func_80126940 (splat-derived); i=3 hi/lo draft D_80126944 vs target 0x80126942 =func_80126942 (splat-derived); i=5 hi/lo draft D_80126940 vs target 0x80126944 =func_80126944 (splat-derived) | `.run/wave_fa/shard330/func_80182564.c` | -| 122 | func_80186A34 | None | | 70 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-235252): i=50 hi/lo draft D_801C92CC vs target 0x801C92BC =func_801C92BC (splat-derived); i=54 hi/lo draft D_801C92BC vs target 0x801C92CC =func_801C92CC (splat-derived) | `.run/wave_dm/shard206/func_80186A34.c` | -| 123 | func_801EE0D4 | None | | 407 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-233727): i=35 hi/lo draft D_801F801C vs target 0x801F8303 =func_801F8303 (splat-derived); i=45 hi/lo draft D_801F801C vs target 0x801F8303 =func_801F8303 (splat-derived) | `.run/wave_ek/shard112/func_801EE0D4.c` | -| 124 | func_8017D994 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017D994.c` | -| 125 | func_8017E558 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E558.c` | -| 126 | func_8017DDE0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DDE0.c` | -| 127 | func_80183940 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183940.c` | -| 128 | func_8017FAA8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233727): .run/resolver/work/ov_SC03_013__func_8017FAA8/c0/rtu/func_8017FAA8/t.c:4276: conflicting types for `SV3' | `.run/backlog_drafts/func_8017FAA8.c` | -| 129 | func_800D30D0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/md_MAIN_003__func_800D30D0/c0/rtu/func_800D30D0/t.c:1094: conflicting types for `func_8005C604' | `.run/backlog_drafts/func_800D30D0.c` | -| 130 | func_800CD2EC | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/md_MAIN_044__func_800CD2EC/c0/rtu/func_800CD2EC/t.c:424: conflicting types for `func_800CD7A8' | `.run/backlog_drafts/func_800CD2EC.c` | -| 131 | func_801A3D60 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/md_SC07_004__func_801A3D60/c0/rtu/func_801A3D60/t.c:1439: conflicting types for `Mtx32_801A90D8' | `.run/backlog_drafts/func_801A3D60.c` | -| 132 | func_8017F9F8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC01_006__func_8017F9F8/c0/rtu/func_8017F9F8/t.c:3099: conflicting types for `D_800A5E88' | `.run/backlog_drafts/func_8017F9F8.c` | -| 133 | func_80189B30 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC02_005__func_80189B30/c0/rtu/func_80189B30/t.c:8557: conflicting types for `Blob8_8018B058' | `.run/backlog_drafts/func_80189B30.c` | -| 134 | func_8017FA74 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC03_092__func_8017FA74/c0/rtu/func_8017FA74/t.c:5483: conflicting types for `Tbl8_8017FC44' | `.run/backlog_drafts/func_8017FA74.c` | -| 135 | func_801805C0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC04_018__func_801805C0/c0/rtu/func_801805C0/t.c:4826: `D_801B9AA8' undeclared (first use this function) | `.run/wave_es/shard250/func_801805C0.c` | -| 136 | func_8017E1BC | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC07_000__func_8017E1BC/c0/rtu/func_8017E1BC/t.c:4304: conflicting types for `func_8012AD44' | `.run/backlog_drafts/func_8017E1BC.c` | -| 137 | func_800D06E8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/resident__func_800D06E8/c0/rtu/func_800D06E8/t.c:1770: conflicting types for `Struct80078E78' | `.run/wave_ch/shard62/func_800D06E8.c` | -| 138 | func_80183FD0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260826-044601): .run/resolver/work/ov_SC06_020__func_80183FD0/c0/rtu/func_80183FD0/t.c:4974: conflicting types for `func_80183FD0' | `.run/wave_g0b/shard43/func_80183FD0.c` | -| 139 | func_800D02D0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260826-080111): .run/resolver/work/resident__func_800D02D0/c0/rtu/func_800D02D0/t.c:1136: conflicting types for `CdFileLoc' | `.run/backlog_drafts/func_800D02D0.c` | -| 140 | func_8018FE20 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018FE20.c` | -| 141 | func_80186AE4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80186AE4.c` | -| 142 | func_8017EB58 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EB58.c` | -| 143 | func_801A2EC8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801A2EC8.c` | -| 144 | func_80183748 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183748.c` | -| 145 | func_8017FBCC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FBCC.c` | -| 146 | func_8017ECAC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017ECAC.c` | -| 147 | func_8017FCFC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FCFC.c` | -| 148 | func_8017F2B8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F2B8.c` | -| 149 | func_801832F8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801832F8.c` | -| 150 | func_8018568C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018568C.c` | -| 151 | func_8017FB04 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FB04.c` | -| 152 | func_801814F4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801814F4.c` | -| 153 | func_8017F018 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F018.c` | -| 154 | func_801829CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801829CC.c` | -| 155 | func_80182BD8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80182BD8.c` | -| 156 | func_801870E8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801870E8.c` | -| 157 | func_8017EDE8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EDE8.c` | -| 158 | func_8018095C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018095C.c` | -| 159 | func_8018489C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018489C.c` | -| 160 | func_80186020 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80186020.c` | -| 161 | func_80181720 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181720.c` | -| 162 | func_8017E464 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E464.c` | -| 163 | func_801808AC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801808AC.c` | -| 164 | func_80189E60 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80189E60.c` | -| 165 | func_8017E658 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E658.c` | -| 166 | func_80185FB0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80185FB0.c` | -| 167 | func_8018DFC4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018DFC4.c` | -| 168 | func_80187A30 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80187A30.c` | +| 2 | func_8017FAAC | 1 | WAVE | 154 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017FAAC.c` | +| 3 | func_801803A0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801803A0.c` | +| 4 | func_8017FFD0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017FFD0.c` | +| 5 | func_8017FE88 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017FE88.c` | +| 6 | func_8017EB30 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017EB30.c` | +| 7 | func_8017F2D4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017F2D4.c` | +| 8 | func_8017EEEC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017EEEC.c` | +| 9 | func_8017FE0C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017FE0C.c` | +| 10 | func_80182438 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80182438.c` | +| 11 | func_80181804 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181804.c` | +| 12 | func_8018000C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8018000C.c` | +| 13 | func_800D00E4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_800D00E4.c` | +| 14 | func_80180E68 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80180E68.c` | +| 15 | func_80183FC8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80183FC8.c` | +| 16 | func_80181CB8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181CB8.c` | +| 17 | func_80182DCC | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80182DCC.c` | +| 18 | func_8017ECB4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017ECB4.c` | +| 19 | func_8017F8B8 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F8B8.c` | +| 20 | func_8017F950 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F950.c` | +| 21 | func_80181E88 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80181E88.c` | +| 22 | func_80188E3C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_80188E3C.c` | +| 23 | func_800D0488 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_800D0488.c` | +| 24 | func_8017F6C0 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8017F6C0.c` | +| 25 | func_8016AE5C | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_8016AE5C.c` | +| 26 | func_801A11D4 | None | | None | near | 0 | match_one MATCH but the whole-binary gate rejected — CAUSE NOT DETERMINED. FIRST re-derive the destination TU from the asm subdir: asm//nonmatchings//.s => src//.c (the third path component IS the TU). Only then look for a decl conflict or a codegen residual. | `.run/backlog_drafts/func_801A11D4.c` | +| 27 | func_801827E0 | None | | 23 | near | 1 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=23 target=23 | `.run/wave_eo/shard427/func_801827E0.c` | +| 28 | func_801AB818 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801AB818.c` | +| 29 | func_80180020 | None | | 231 | near | 2 | resolver DIFF (real-TU rtu_match, 20260826-145551): mine=231 target=231 | `.run/backlog_drafts/func_80180020.c` | +| 30 | func_801A4ACC | None | | 237 | near | 2 | resolver DIFF (real-TU rtu_match, 20260826-145551): mine=237 target=237 | `.run/backlog_drafts/func_801A4ACC.c` | +| 31 | func_801804C8 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801804C8.c` | +| 32 | func_80180A10 | None | LENGTH-DRIFT | None | near | 2 | lenmiss permuter-length route | `.run/backlog_drafts/func_80180A10.c` | +| 33 | func_80180B84 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_80180B84.c` | +| 34 | func_801816C8 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801816C8.c` | +| 35 | func_80185840 | None | regalloc-perm-clamp | None | near | 3 | 52/52 ins, 9->3 mismatched. Residual = ONE register identity (clamp result in $a0, target wants $v0). THREE reusable levers found: (1) the §17 zero-reg copy done right — 'register u32 zr __asm__("$0"); c = val + zr;' reproduces the target's non-coalescing 'addu $v1,$v0,$zero' live-range copy, which §52a had called the non-coalescing-delay-slot-copy WALL; (2) 'r = 0x80;' BEFORE a single-armed if (not if/else) is what gets the li into the branch delay slot — reorg's fill_simple_delay_slots BACKWARD scan steals it, whereas any two-arm spelling needs fill_eager_delay_slots' target-thread steal which never fires (53 ins + j/nop); (3) a zero-byte asm fence between the sh and the += stops sched1 hoisting the lui above the store. Permuter seed. | `.run/wave_p31n/ov_SC02_000/func_80185840.c` | +| 36 | func_8017D918 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8017D918.c` | +| 37 | func_80185F4C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80185F4C.c` | +| 38 | func_8018AD74 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8018AD74.c` | +| 39 | func_8018A3CC | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8018A3CC.c` | +| 40 | func_801852B0 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_801852B0.c` | +| 41 | func_8018611C | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_8018611C.c` | +| 42 | func_80182CBC | None | | 28 | near | 7 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=28 target=28 | `.run/backlog_drafts/func_80182CBC.c` | +| 43 | func_801ADA10 | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_801ADA10.c` | +| 44 | func_80181C84 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_80181C84.c` | +| 45 | func_80180EC0 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_80180EC0.c` | +| 46 | func_80183940 | None | | 58 | near | 11 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=58 target=58 | `.run/wave_ex/shard484/func_80183940.c` | +| 47 | func_8017E7E8 | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_8017E7E8.c` | +| 48 | func_8017CDE4 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017CDE4.c` | +| 49 | func_8018FB5C | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8018FB5C.c` | +| 50 | func_800D0664 | None | | 22 | near | 19 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=14 target=22 | `.run/backlog_drafts/func_800D0664.c` | +| 51 | func_80181294 | None | | None | near | 19 | residual: 19 mismatch | `.run/backlog_drafts/func_80181294.c` | +| 52 | func_801831D0 | None | | 22 | near | 21 | resolver DIFF (real-TU rtu_match, 20260826-040016): mine=13 target=22 | `.run/backlog_drafts/func_801831D0.c` | +| 53 | func_80183178 | None | | None | near | 21 | residual: 21 mismatch | `.run/backlog_drafts/func_80183178.c` | +| 54 | func_8017F35C | None | | 36 | near | 22 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=35 target=36 | `.run/wave_cn/shard141/func_8017F35C.c` | +| 55 | func_8017EEA4 | None | | 36 | near | 23 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=36 target=36 | `.run/wave_dx/shard220/func_8017EEA4.c` | +| 56 | func_8017D4CC | None | | None | near | 23 | residual: 23 mismatch | `.run/backlog_drafts/func_8017D4CC.c` | +| 57 | func_801843E0 | None | | None | near | 25 | residual: 25 mismatch | `.run/backlog_drafts/func_801843E0.c` | +| 58 | func_801805C0 | None | | 81 | near | 29 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=81 target=81 | `.run/wave_du/shard119/func_801805C0.c` | +| 59 | func_80185214 | None | | None | near | 32 | residual: 32 mismatch | `.run/backlog_drafts/func_80185214.c` | +| 60 | func_80181344 | None | | None | near | 48 | residual: 48 mismatch | `.run/backlog_drafts/func_80181344.c` | +| 61 | func_801808AC | None | | 67 | near | 60 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=41 target=67 | `.run/wave_ec/shard8/func_801808AC.c` | +| 62 | func_8017D610 | None | | None | near | 64 | residual: 64 mismatch | `.run/backlog_drafts/func_8017D610.c` | +| 63 | func_801808AC | None | | 41 | near | 65 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=67 target=41 | `.run/wave_fa/shard6/func_801808AC.c` | +| 64 | func_800D0C50 | None | | 71 | near | 68 | resolver DIFF (real-TU rtu_match, 20260826-044601): mine=46 target=71 | `.run/backlog_drafts/func_800D0C50.c` | +| 65 | func_800D0B1C | None | | 77 | near | 69 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=49 target=77 | `.run/backlog_drafts/func_800D0B1C.c` | +| 66 | func_801835B0 | None | | 73 | near | 71 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=36 target=73 | `.run/wave_ed/shard3/func_801835B0.c` | +| 67 | func_8017FED8 | None | | 62 | near | 72 | resolver DIFF (real-TU rtu_match, 20260826-004023): mine=78 target=62 | `.run/wave_fb/shard11/func_8017FED8.c` | +| 68 | func_8017FED8 | None | | 78 | near | 75 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=62 target=78 | `.run/wave_ei/shard319/func_8017FED8.c` | +| 69 | func_8017DABC | None | | 78 | near | 75 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=39 target=78 | `.run/wave_dd/shard353/func_8017DABC.c` | +| 70 | func_80180610 | None | | 79 | near | 78 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=31 target=79 | `.run/wave_ck/shard182/func_80180610.c` | +| 71 | func_8017E37C | None | | None | near | 79 | residual: 79 mismatch | `.run/backlog_drafts/func_8017E37C.c` | +| 72 | func_801805C0 | None | | 22 | near | 81 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=81 target=22 | `.run/wave_ey/shard163/func_801805C0.c` | +| 73 | func_8017D3F4 | None | | 85 | near | 81 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=34 target=85 | `.run/wave_ds/shard302/func_8017D3F4.c` | +| 74 | func_8017E160 | None | | 98 | near | 83 | resolver DIFF (real-TU rtu_match, 20260826-053145): mine=77 target=98 | `.run/wave_g0c/shard9/func_8017E160.c` | +| 75 | func_8017E4DC | None | | 92 | near | 85 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=75 target=92 | `.run/wave_dd/shard160/func_8017E4DC.c` | +| 76 | func_8018006C | None | | None | near | 86 | residual: 86 mismatch | `.run/backlog_drafts/func_8018006C.c` | +| 77 | func_8017EDC0 | None | | None | near | 91 | residual: 91 mismatch | `.run/backlog_drafts/func_8017EDC0.c` | +| 78 | func_8017EB78 | None | | 10 | near | 94 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=95 target=10 | `.run/wave_df/shard365/func_8017EB78.c` | +| 79 | func_80183098 | None | | 104 | near | 98 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=53 target=104 | `.run/wave_cx/shard97/func_80183098.c` | +| 80 | func_8017DAEC | 1 | WAVE | 113 | near | 98 | WAVE: 98 mismatch | `.run/backlog_drafts/func_8017DAEC.c` | +| 81 | func_8017DF70 | None | | 108 | near | 105 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=30 target=108 | `.run/wave_dj/shard178/func_8017DF70.c` | +| 82 | func_80183940 | None | | 110 | near | 106 | resolver DIFF (real-TU rtu_match, 20260825-235252): mine=58 target=110 | `.run/backlog_drafts/func_80183940.c` | +| 83 | func_8017F69C | None | | None | near | 107 | residual: 107 mismatch | `.run/backlog_drafts/func_8017F69C.c` | +| 84 | func_8017D508 | None | | None | near | 113 | residual: 113 mismatch | `.run/backlog_drafts/func_8017D508.c` | +| 85 | func_8017F4DC | None | | 73 | near | 114 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=121 target=73 | `.run/wave_cx/shard91/func_8017F4DC.c` | +| 86 | func_8017DB98 | None | | None | near | 115 | residual: 115 mismatch | `.run/backlog_drafts/func_8017DB98.c` | +| 87 | func_80180B3C | None | | 297 | near | 125 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=296 target=297 | `.run/wave_eo/shard478/func_80180B3C.c` | +| 88 | func_801867D0 | None | | 198 | near | 166 | resolver DIFF (real-TU rtu_match, 20260826-062321): mine=100 target=198 | `.run/wave_g0d/shard11/func_801867D0.c` | +| 89 | func_800CB00C | None | | 123 | near | 168 | resolver DIFF (real-TU rtu_match, 20260826-053145): mine=174 target=123 | `.run/wave_g0c/shard30/func_800CB00C.c` | +| 90 | func_800CB56C | None | | 94 | near | 221 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=234 target=94 | `.run/wave_du/shard263/func_800CB56C.c` | +| 91 | func_801806F8 | None | | 241 | near | 235 | resolver DIFF (real-TU rtu_match, 20260826-062321): mine=72 target=241 | `.run/wave_g0d/shard20/func_801806F8.c` | +| 92 | func_80180ABC | None | | 257 | near | 250 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=49 target=257 | `.run/wave_ci/shard141/func_80180ABC.c` | +| 93 | func_80182184 | None | | 272 | near | 261 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=202 target=272 | `.run/wave_de/shard232/func_80182184.c` | +| 94 | func_8017EC68 | None | | 279 | near | 274 | resolver DIFF (real-TU rtu_match, 20260825-233820): mine=341 target=279 | `.run/wave_fa/shard313/func_8017EC68.c` | +| 95 | func_80180B3C | None | | 21 | near | 287 | resolver DIFF (real-TU rtu_match, 20260826-022235): mine=287 target=21 | `.run/wave_eq/shard63/func_80180B3C.c` | +| 96 | func_8016AB6C | None | | 188 | near | 14831 | resolver DIFF (real-TU rtu_match, 20260826-004023): mine=14864 target=188 | `.run/wave_fc/shard132/func_8016AB6C.c` | +| 97 | func_80186A34 | None | | 70 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-235252): i=50 hi/lo draft D_801C92CC vs target 0x801C92BC =func_801C92BC (splat-derived); i=54 hi/lo draft D_801C92BC vs target 0x801C92CC =func_801C92CC (splat-derived) | `.run/wave_dm/shard206/func_80186A34.c` | +| 98 | func_801EE0D4 | None | | 407 | failed | | resolver SYMBOL-MISMATCH (real-TU rtu_match, 20260825-233727): i=35 hi/lo draft D_801F801C vs target 0x801F8303 =func_801F8303 (splat-derived); i=45 hi/lo draft D_801F801C vs target 0x801F8303 =func_801F8303 (splat-derived) | `.run/wave_ek/shard112/func_801EE0D4.c` | +| 99 | func_8017D994 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017D994.c` | +| 100 | func_8017E558 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E558.c` | +| 101 | func_8017DDE0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017DDE0.c` | +| 102 | func_80183940 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183940.c` | +| 103 | func_8017FAA8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233727): .run/resolver/work/ov_SC03_013__func_8017FAA8/c0/rtu/func_8017FAA8/t.c:4276: conflicting types for `SV3' | `.run/backlog_drafts/func_8017FAA8.c` | +| 104 | func_800D30D0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/md_MAIN_003__func_800D30D0/c0/rtu/func_800D30D0/t.c:1094: conflicting types for `func_8005C604' | `.run/backlog_drafts/func_800D30D0.c` | +| 105 | func_800CD2EC | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/md_MAIN_044__func_800CD2EC/c0/rtu/func_800CD2EC/t.c:424: conflicting types for `func_800CD7A8' | `.run/backlog_drafts/func_800CD2EC.c` | +| 106 | func_8017F9F8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC01_006__func_8017F9F8/c0/rtu/func_8017F9F8/t.c:3099: conflicting types for `D_800A5E88' | `.run/backlog_drafts/func_8017F9F8.c` | +| 107 | func_80189B30 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC02_005__func_80189B30/c0/rtu/func_80189B30/t.c:8557: conflicting types for `Blob8_8018B058' | `.run/backlog_drafts/func_80189B30.c` | +| 108 | func_8017FA74 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC03_092__func_8017FA74/c0/rtu/func_8017FA74/t.c:5483: conflicting types for `Tbl8_8017FC44' | `.run/backlog_drafts/func_8017FA74.c` | +| 109 | func_801805C0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC04_018__func_801805C0/c0/rtu/func_801805C0/t.c:4826: `D_801B9AA8' undeclared (first use this function) | `.run/wave_es/shard250/func_801805C0.c` | +| 110 | func_8017E1BC | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/ov_SC07_000__func_8017E1BC/c0/rtu/func_8017E1BC/t.c:4304: conflicting types for `func_8012AD44' | `.run/backlog_drafts/func_8017E1BC.c` | +| 111 | func_800D06E8 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260825-233820): .run/resolver/work/resident__func_800D06E8/c0/rtu/func_800D06E8/t.c:1770: conflicting types for `Struct80078E78' | `.run/wave_ch/shard62/func_800D06E8.c` | +| 112 | func_80183FD0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260826-044601): .run/resolver/work/ov_SC06_020__func_80183FD0/c0/rtu/func_80183FD0/t.c:4974: conflicting types for `func_80183FD0' | `.run/wave_g0b/shard43/func_80183FD0.c` | +| 113 | func_800D02D0 | None | | None | failed | | resolver CC1 (real-TU rtu_match, 20260826-080111): .run/resolver/work/resident__func_800D02D0/c0/rtu/func_800D02D0/t.c:1136: conflicting types for `CdFileLoc' | `.run/backlog_drafts/func_800D02D0.c` | +| 114 | func_8018FE20 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018FE20.c` | +| 115 | func_80186AE4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80186AE4.c` | +| 116 | func_8017EB58 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EB58.c` | +| 117 | func_801A2EC8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801A2EC8.c` | +| 118 | func_80183748 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80183748.c` | +| 119 | func_8017FBCC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017FBCC.c` | +| 120 | func_8017F2B8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F2B8.c` | +| 121 | func_801832F8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801832F8.c` | +| 122 | func_8017F018 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017F018.c` | +| 123 | func_801829CC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801829CC.c` | +| 124 | func_80182BD8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80182BD8.c` | +| 125 | func_801870E8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801870E8.c` | +| 126 | func_8017EDE8 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017EDE8.c` | +| 127 | func_8018095C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018095C.c` | +| 128 | func_8018489C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018489C.c` | +| 129 | func_80186020 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80186020.c` | +| 130 | func_80181720 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80181720.c` | +| 131 | func_8017E464 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E464.c` | +| 132 | func_801808AC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801808AC.c` | +| 133 | func_80189E60 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80189E60.c` | +| 134 | func_8017E658 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017E658.c` | +| 135 | func_8018DFC4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8018DFC4.c` | +| 136 | func_80187A30 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80187A30.c` | diff --git a/docs/cookbook-index.md b/docs/cookbook-index.md index 1ae7e5394..6d2c4809f 100644 --- a/docs/cookbook-index.md +++ b/docs/cookbook-index.md @@ -2,7 +2,7 @@ > **Generated by `tools/cookbook_index.py` — do not hand-edit** (R33). Regenerate after adding a cookbook section. > -> `docs/matching-cookbook.md` is ~716 KB / 1049 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses. +> `docs/matching-cookbook.md` is ~716 KB / 1050 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses. **How to use:** name what you SEE in the diff (a stolen delay slot, an extra `la`, a swapped register pair, a `conflicting types` error), find that symptom below, read those sections first. If nothing fits, THEN grind — and add a section when you win. @@ -599,7 +599,7 @@ - **§379** — ★★★ — **MEM_IN_STRUCT_P**: THE SAME LOAD, WRITTEN AS A STRUCT MEMBER, SCHEDULES WHERE A CAST CANNOT (P31 S69; byte-proven main/func_80021284 220 ins and main/func_8002D904 217 ins, found INDEPENDENTLY by two agents) L32164 - **§392** — ★★★ — THE SONNET-WAVE HARVEST (P31 S69): SEVEN TYPE/ORDER LEVERS THAT EACH CLOSED A MATCH L32502 -### declarations, prototypes & K&R (110) +### declarations, prototypes & K&R (111) - **§3-T4** — Branch polarity: invert the source condition to flip gcc's chosen branch L90 - **§8c** — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L456 @@ -711,6 +711,7 @@ - **§354** — THE giv **WORTH-WHILE TEST** IS A DIAL: RE-ASSOCIATE THE ADDEND INTO THE INDEX TERM AND `strength_reduce` DECLINES (P31 S68; byte-proven ov_SC03_105/func_801824CC, 320 ins, 201 → 5 → 0) L31542 - **§361** — ★ — A LOOP-TAIL BYTE SIGNATURE THAT NAMES ITS SOURCE SHAPE — AND THE LAW THAT A "SCHEDULING TIE" MAY BE YOUR OWN EARLIER LEVER (P31 S68; byte-proven main/func_800241C0, fable escalation, 19 → 0 in 3 iterations) L31637 - **§367** — RECONCILING A DECL CONFLICT BETWEEN TWO DRAFTS FOR THE SAME TU (P31 S68; main) L31777 +- **§378b** — ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) L32572 ### jump tables & switches (55) @@ -1180,7 +1181,7 @@ - **§388** — ★★★ — THE **-O0 COLOURING ORACLE**: simulate `stupid.c` instead of grinding spellings (P31 S69; main/func_80011380 proved a C-level WALL at 6) L32384 - **§392** — ★★★ — THE SONNET-WAVE HARVEST (P31 S69): SEVEN TYPE/ORDER LEVERS THAT EACH CLOSED A MATCH L32502 -### process, measurement & doctrine (127) +### process, measurement & doctrine (128) - **§8e** — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; `.run/probe_jtbl/verdict.md`) L549 - **§3-The** — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L945 @@ -1309,6 +1310,7 @@ - **§370** — ★★ — A **HARD BOUND** FROM sched.c, AND THE reorg SLOT-STEAL DIAGNOSTIC (P31 S68; main/func_8001BC6C, 69 ins, NOT closed — 33 → 28 over ~45 measured compiles) L31838 - **§376** — ★★★ — A STANDALONE `match_one` CLOSENESS OF 0 IS A CLAIM ABOUT THE **BODY**, NEVER ABOUT THE **TU** (P31 S69; measured 0/28) L32055 - **§384** — ★★★ — A CARVE-CONFIG BANK IS RED UNTIL YOU RE-EXTRACT, AND THAT LOOKS EXACTLY LIKE A FALSE BANK (P31 S69; measured twice, cost one destroyed match) L32259 +- **§378b** — ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) L32572 ### (unbucketed — title matched no symptom vocabulary) (310) @@ -2675,6 +2677,7 @@ - **§392** — ★★★ — THE SONNET-WAVE HARVEST (P31 S69): SEVEN TYPE/ORDER LEVERS THAT EACH CLOSED A MATCH L32502 - **§393** — ★★ — THE **BIRTHING BOOST**: A SINGLE-SET LOCAL IS SCHEDULED LAST; GIVE IT A SECOND SET (P31 S69; byte-proven ov_SC02_017/func_8017FCFC) L32543 - **§394** — ★★ — TWO ALIGN-1 ACCESSES IN ONE FUNCTION RESERVE A PHANTOM STACK SLOT (P31 S69; ov_SC02_005/func_80180610) L32560 +- **§378b** — ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) L32572 --- @@ -3736,3 +3739,4 @@ Notes routinely quote that as a section id. This table resolves it. Grep bait: ` | L32502 | §392 | ★★★ — THE SONNET-WAVE HARVEST (P31 S69): SEVEN TYPE/ORDER LEVERS THAT EACH CLOSED A MATCH | | L32543 | §393 | ★★ — THE **BIRTHING BOOST**: A SINGLE-SET LOCAL IS SCHEDULED LAST; GIVE IT A SECOND SET (P | | L32560 | §394 | ★★ — TWO ALIGN-1 ACCESSES IN ONE FUNCTION RESERVE A PHANTOM STACK SLOT (P31 S69; ov_SC02_0 | +| L32572 | §378b | ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P | diff --git a/docs/matching-cookbook.md b/docs/matching-cookbook.md index c94a1ef0b..683d23e6d 100644 --- a/docs/matching-cookbook.md +++ b/docs/matching-cookbook.md @@ -32568,3 +32568,42 @@ removes the second align-1 access and the 8-byte bloat with it. **Diff tell: a frame 8 bytes larger than the target with no spill or save to account for it, in a function that copies a byte-aligned aggregate more than once.** Related: §391 (a byte-aligned struct copies in four instructions, a word-aligned one in two). + +## §378b ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) + +§378 gave the SELF-CALLER chain. Three more variants appeared within hours, and **two of them break +the chain rather than extend it.** Identify the variant from the diagnostic before applying anything. + +| # | diagnostic | who conflicts | fix | status | +|---|---|---|---|---| +| 1 | `conflicting types for func_X` | the TU's forward decl of the fn being DEFINED | `fix_arity_callers --any-proto` → `cast_self_callers` | §378, byte-proven ×8 | +| 2 | `conflicting types` on a promotion-affected param (`s16`) | same, but C89 forbids no-proto | `cast_self_callers --sync-decls` | §378a, byte-proven main/func_80036D58 | +| 3 | `conflicting types` — RETURN type only, decl ALREADY `()` | same, and the symbol is **ADDRESS-TAKEN, not called** | **`--sync-decls` ALONE** | NEW, byte-proven ov_SC04_018/func_8017F35C | +| 4 | `conflicting types for ` | a CALLEE the draft shares with the TU | **NOT the §378 chain — see the refutation** | **DO NOT no-proto it blindly** | + +**Variant 3 — the two levers that BOTH no-op.** `ov_SC04_018/func_8017F35C` matched 0/47 and still +would not gate. The TU's decl at `:5366` was `extern void func_8017F35C();` — already no-proto, so +`--any-proto` has nothing to relax; and the use at `:5385` is +`func_801788B8((s32)a0, (s32)&func_8017F35C)` — the symbol's ADDRESS is taken, so there is no call +site for `cast_self_callers` to cast. The only conflict is the RETURN type (`void` vs `s32`), and a +one-token decl sync fixes it. **A decl sync is safe here precisely BECAUSE the site is address-taken: +there are no arguments to convert, so nothing can move.** + +**Variant 4 — the refutation. I documented "run the same chain on the callee the diagnostic names" +and that is WRONG at scale.** Applied to `func_8012AD44` in `ov_SC07_000`, `--any-proto` no-protoed +**60** caller decls and the binary went RED (`265b24bb` vs `9dbe4241`), reverted via journal. + +*Why the self case is safe and the callee case is not:* in the self case, step 2 CASTS the call +sites, so the decl change cannot alter argument conversion. For a callee, `cast_self_callers` +correctly REFUSES (it reads the return type off the draft, and the callee is not the draft), so the +decl change runs **unprotected** — and a no-proto decl applies the default promotions instead of +converting to the declared parameter types. With 60 call sites, some argument narrowing changed and +the codegen moved. It banked `main/func_80021D38` earlier only because that callee had **one** decl, +not sixty. + +**The rule:** never `--any-proto` a symbol whose call sites you are not also casting. Count the sites +first — `fix_arity_callers` prints the count — and if it is more than a couple, treat the callee as a +byte-risk edit that must be build-verified per binary BEFORE the gate, not after. + +**Standing order for any decl blocker:** read the diagnostic, name the variant, and apply only that +variant's lever. The chain is not a sequence to run blindly; it is a decision table. diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index eab24effb..267052d16 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -4,24 +4,24 @@ # cross-binary collapsible-byte leverage: docs/duplicates.cross.md. # THREE progress metrics (all matter — see the labels): -FLEET fn-count byte-ident: 362550 / 362964 = 99.89% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) -FLEET instr-weighted : 13436580 / 13523865 = 99.4% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number) -FLEET distinct-code(uniq): 5766249 / 5851972 = 98.5% (90615/90929 unique fns; the DISTINCT-RE number) -MAIN game-code weighted : 35772 / 79510 = 45.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) - (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13400808 / 13444355 = 99.7%) +FLEET fn-count byte-ident: 362611 / 362961 = 99.90% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) +FLEET instr-weighted : 13443325 / 13523865 = 99.4% (shipped .text across main + resident + 211 overlays; the decomp.dev-DISPLAY number) +FLEET distinct-code(uniq): 5772886 / 5851972 = 98.6% (90662/90929 unique fns; the DISTINCT-RE number) +MAIN game-code weighted : 39105 / 79510 = 49.2% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) + (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13404220 / 13444355 = 99.7%) -FLEET REAL substantive : 360380 (of which dedup-shared 255632 via 2220 groups / 255708 instances) +FLEET REAL substantive : 360441 (of which dedup-shared 255632 via 2220 groups / 255708 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 3 (0 in any default build — G4) -FLEET INCLUDE_ASM stubs : 411 -FLEET matchable : 362964 +FLEET INCLUDE_ASM stubs : 347 +FLEET matchable : 362961 | binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % | |---|---:|---:|---:|---:|---:|---:| -| main | 836 | 2 | 959 | 1838 | 1919 | 95.8% | +| main | 850 | 2 | 959 | 1852 | 1919 | 96.5% | | resident | 138 | 0 | 0 | 140 | 145 | 96.6% | | md_MAIN_001 | 11 | 0 | 0 | 11 | 11 | 100.0% | -| md_MAIN_003 | 40 | 0 | 0 | 40 | 51 | 78.4% | +| md_MAIN_003 | 40 | 0 | 0 | 40 | 49 | 81.6% | | md_MAIN_008 | 6 | 0 | 0 | 6 | 6 | 100.0% | | md_MAIN_011 | 19 | 0 | 0 | 20 | 21 | 95.2% | | md_MAIN_013 | 15 | 0 | 0 | 15 | 16 | 93.8% | @@ -44,7 +44,7 @@ FLEET matchable : 362964 | md_MAIN_030 | 10 | 0 | 0 | 10 | 10 | 100.0% | | md_MAIN_031 | 18 | 0 | 0 | 18 | 18 | 100.0% | | md_MAIN_032 | 10 | 1 | 0 | 10 | 10 | 100.0% | -| md_MAIN_033 | 18 | 0 | 0 | 18 | 19 | 94.7% | +| md_MAIN_033 | 19 | 0 | 0 | 19 | 19 | 100.0% | | md_MAIN_034 | 25 | 0 | 0 | 26 | 28 | 92.9% | | md_MAIN_035 | 15 | 0 | 0 | 16 | 16 | 100.0% | | md_MAIN_036 | 27 | 0 | 0 | 28 | 28 | 100.0% | @@ -56,7 +56,7 @@ FLEET matchable : 362964 | md_MAIN_042 | 4 | 0 | 0 | 4 | 4 | 100.0% | | md_MAIN_043 | 22 | 0 | 0 | 23 | 23 | 100.0% | | md_MAIN_044 | 41 | 0 | 0 | 42 | 43 | 97.7% | -| md_MAIN_045 | 19 | 0 | 0 | 20 | 21 | 95.2% | +| md_MAIN_045 | 20 | 0 | 0 | 21 | 21 | 100.0% | | md_MAIN_046 | 38 | 0 | 0 | 39 | 39 | 100.0% | | md_MAIN_047 | 11 | 0 | 0 | 12 | 12 | 100.0% | | md_SC02_009 | 40 | 0 | 0 | 40 | 40 | 100.0% | @@ -89,7 +89,7 @@ FLEET matchable : 362964 | md_SC05_028 | 25 | 0 | 0 | 27 | 27 | 100.0% | | md_SC05_029 | 27 | 0 | 0 | 31 | 31 | 100.0% | | md_SC07_003 | 94 | 0 | 0 | 94 | 100 | 94.0% | -| md_SC07_004 | 300 | 0 | 0 | 300 | 315 | 95.2% | +| md_SC07_004 | 301 | 0 | 0 | 301 | 315 | 95.6% | | ov_MAIN_012 | 2322 | 1693 | 0 | 2401 | 2401 | 100.0% | | ov_SC01_000 | 2400 | 1814 | 0 | 2400 | 2403 | 99.9% | | ov_SC01_001 | 2461 | 1816 | 0 | 2463 | 2465 | 99.9% | @@ -99,22 +99,22 @@ FLEET matchable : 362964 | ov_SC01_008 | 2423 | 1808 | 0 | 2425 | 2426 | 100.0% | | ov_SC01_009 | 2504 | 1808 | 0 | 2505 | 2507 | 99.9% | | ov_SC01_074 | 2424 | 1808 | 0 | 2426 | 2426 | 100.0% | -| ov_SC01_077 | 2581 | 1769 | 0 | 2583 | 2586 | 99.9% | -| ov_SC01_080 | 2504 | 1813 | 0 | 2504 | 2512 | 99.7% | +| ov_SC01_077 | 2583 | 1769 | 0 | 2585 | 2586 | 100.0% | +| ov_SC01_080 | 2506 | 1813 | 0 | 2506 | 2512 | 99.8% | | ov_SC01_084 | 2569 | 1824 | 0 | 2574 | 2579 | 99.8% | | ov_SC02_000 | 2680 | 1902 | 0 | 2680 | 2683 | 99.9% | | ov_SC02_003 | 2678 | 1902 | 0 | 2678 | 2683 | 99.8% | | ov_SC02_004 | 2401 | 1813 | 0 | 2401 | 2401 | 100.0% | -| ov_SC02_005 | 2908 | 1807 | 0 | 2918 | 2926 | 99.7% | -| ov_SC02_011 | 2874 | 1815 | 0 | 2884 | 2893 | 99.7% | +| ov_SC02_005 | 2909 | 1807 | 0 | 2919 | 2926 | 99.8% | +| ov_SC02_011 | 2876 | 1815 | 0 | 2886 | 2893 | 99.8% | | ov_SC02_015 | 2414 | 1819 | 0 | 2414 | 2414 | 100.0% | | ov_SC02_016 | 2540 | 1815 | 0 | 2543 | 2545 | 99.9% | -| ov_SC02_017 | 2720 | 1815 | 0 | 2728 | 2732 | 99.9% | +| ov_SC02_017 | 2721 | 1815 | 0 | 2729 | 2732 | 99.9% | | ov_SC02_021 | 2437 | 1819 | 0 | 2437 | 2437 | 100.0% | | ov_SC02_026 | 2565 | 1812 | 0 | 2571 | 2572 | 100.0% | | ov_SC02_027 | 2681 | 1833 | 0 | 2690 | 2692 | 99.9% | | ov_SC02_028 | 2690 | 1832 | 0 | 2700 | 2701 | 100.0% | -| ov_SC02_031 | 2556 | 1814 | 0 | 2561 | 2562 | 100.0% | +| ov_SC02_031 | 2557 | 1814 | 0 | 2562 | 2562 | 100.0% | | ov_SC02_035 | 2516 | 1811 | 0 | 2519 | 2520 | 100.0% | | ov_SC02_037 | 2433 | 1708 | 0 | 2515 | 2515 | 100.0% | | ov_SC02_039 | 2416 | 1819 | 0 | 2416 | 2416 | 100.0% | @@ -132,29 +132,29 @@ FLEET matchable : 362964 | ov_SC03_015 | 2468 | 1879 | 0 | 2468 | 2468 | 100.0% | | ov_SC03_023 | 2434 | 1813 | 0 | 2435 | 2435 | 100.0% | | ov_SC03_024 | 2633 | 1837 | 0 | 2640 | 2641 | 100.0% | -| ov_SC03_028 | 2653 | 1816 | 0 | 2657 | 2664 | 99.7% | -| ov_SC03_029 | 2631 | 1815 | 0 | 2641 | 2644 | 99.9% | -| ov_SC03_030 | 2490 | 1816 | 0 | 2492 | 2495 | 99.9% | -| ov_SC03_031 | 2510 | 1813 | 0 | 2513 | 2514 | 100.0% | -| ov_SC03_089 | 2573 | 1824 | 0 | 2580 | 2581 | 100.0% | +| ov_SC03_028 | 2654 | 1816 | 0 | 2658 | 2664 | 99.8% | +| ov_SC03_029 | 2632 | 1815 | 0 | 2642 | 2644 | 99.9% | +| ov_SC03_030 | 2491 | 1816 | 0 | 2493 | 2495 | 99.9% | +| ov_SC03_031 | 2511 | 1813 | 0 | 2514 | 2514 | 100.0% | +| ov_SC03_089 | 2574 | 1824 | 0 | 2581 | 2581 | 100.0% | | ov_SC03_090 | 2617 | 1824 | 0 | 2625 | 2625 | 100.0% | | ov_SC03_091 | 2632 | 1833 | 0 | 2640 | 2640 | 100.0% | | ov_SC03_092 | 2573 | 1824 | 0 | 2585 | 2588 | 99.9% | | ov_SC03_093 | 2560 | 1834 | 0 | 2563 | 2563 | 100.0% | -| ov_SC03_094 | 2569 | 1811 | 0 | 2575 | 2577 | 99.9% | +| ov_SC03_094 | 2571 | 1811 | 0 | 2577 | 2577 | 100.0% | | ov_SC03_095 | 2471 | 1811 | 0 | 2474 | 2474 | 100.0% | | ov_SC03_096 | 2462 | 1811 | 0 | 2465 | 2465 | 100.0% | | ov_SC03_097 | 2596 | 1832 | 0 | 2603 | 2603 | 100.0% | | ov_SC03_098 | 2538 | 1833 | 0 | 2541 | 2541 | 100.0% | -| ov_SC03_099 | 2500 | 1811 | 0 | 2503 | 2504 | 100.0% | +| ov_SC03_099 | 2501 | 1811 | 0 | 2504 | 2504 | 100.0% | | ov_SC03_100 | 2535 | 1833 | 0 | 2539 | 2539 | 100.0% | | ov_SC03_101 | 2524 | 1824 | 0 | 2528 | 2528 | 100.0% | -| ov_SC03_102 | 2487 | 1811 | 0 | 2490 | 2492 | 99.9% | +| ov_SC03_102 | 2488 | 1811 | 0 | 2491 | 2492 | 100.0% | | ov_SC03_103 | 2507 | 1813 | 0 | 2510 | 2510 | 100.0% | | ov_SC03_104 | 2609 | 1824 | 0 | 2616 | 2616 | 100.0% | -| ov_SC03_105 | 2567 | 1816 | 0 | 2574 | 2596 | 99.2% | +| ov_SC03_105 | 2569 | 1816 | 0 | 2576 | 2596 | 99.2% | | ov_SC03_107 | 2411 | 1693 | 0 | 2494 | 2495 | 100.0% | -| ov_SC03_108 | 2441 | 1819 | 0 | 2441 | 2443 | 99.9% | +| ov_SC03_108 | 2442 | 1819 | 0 | 2442 | 2443 | 100.0% | | ov_SC03_109 | 2422 | 1812 | 0 | 2424 | 2424 | 100.0% | | ov_SC03_110 | 2468 | 1835 | 0 | 2468 | 2468 | 100.0% | | ov_SC03_111 | 2505 | 1811 | 0 | 2508 | 2510 | 99.9% | @@ -164,42 +164,42 @@ FLEET matchable : 362964 | ov_SC03_115 | 2470 | 1812 | 0 | 2472 | 2472 | 100.0% | | ov_SC03_116 | 2435 | 1811 | 0 | 2438 | 2438 | 100.0% | | ov_SC03_117 | 2549 | 1811 | 0 | 2555 | 2557 | 99.9% | -| ov_SC03_118 | 2681 | 1869 | 0 | 2682 | 2684 | 99.9% | -| ov_SC03_119 | 2683 | 1869 | 0 | 2684 | 2685 | 100.0% | +| ov_SC03_118 | 2682 | 1869 | 0 | 2683 | 2684 | 100.0% | +| ov_SC03_119 | 2684 | 1869 | 0 | 2685 | 2685 | 100.0% | | ov_SC03_121 | 2457 | 1812 | 0 | 2459 | 2459 | 100.0% | -| ov_SC03_124 | 2716 | 1807 | 0 | 2736 | 2741 | 99.8% | +| ov_SC03_124 | 2717 | 1807 | 0 | 2737 | 2741 | 99.9% | | ov_SC03_125 | 2576 | 1820 | 0 | 2588 | 2588 | 100.0% | | ov_SC03_126 | 2423 | 1815 | 0 | 2423 | 2423 | 100.0% | | ov_SC04_000 | 2536 | 1816 | 0 | 2545 | 2546 | 100.0% | -| ov_SC04_002 | 2629 | 1811 | 0 | 2633 | 2636 | 99.9% | +| ov_SC04_002 | 2630 | 1811 | 0 | 2634 | 2636 | 99.9% | | ov_SC04_003 | 2498 | 1818 | 0 | 2501 | 2502 | 100.0% | -| ov_SC04_004 | 2555 | 1812 | 0 | 2557 | 2558 | 100.0% | +| ov_SC04_004 | 2556 | 1812 | 0 | 2558 | 2558 | 100.0% | | ov_SC04_005 | 2604 | 1811 | 0 | 2610 | 2612 | 99.9% | | ov_SC04_006 | 2452 | 1817 | 0 | 2454 | 2454 | 100.0% | | ov_SC04_007 | 2564 | 1812 | 0 | 2568 | 2569 | 100.0% | | ov_SC04_008 | 2415 | 1811 | 0 | 2415 | 2415 | 100.0% | | ov_SC04_009 | 2438 | 1811 | 0 | 2441 | 2441 | 100.0% | -| ov_SC04_010 | 2417 | 1811 | 0 | 2418 | 2419 | 100.0% | -| ov_SC04_011 | 2788 | 1824 | 0 | 2794 | 2804 | 99.6% | +| ov_SC04_010 | 2418 | 1811 | 0 | 2419 | 2419 | 100.0% | +| ov_SC04_011 | 2789 | 1824 | 0 | 2795 | 2804 | 99.7% | | ov_SC04_012 | 2418 | 1811 | 0 | 2419 | 2420 | 100.0% | -| ov_SC04_015 | 2598 | 1812 | 0 | 2609 | 2611 | 99.9% | +| ov_SC04_015 | 2599 | 1812 | 0 | 2610 | 2611 | 100.0% | | ov_SC04_016 | 2437 | 1812 | 0 | 2439 | 2440 | 100.0% | | ov_SC04_018 | 2854 | 1896 | 0 | 2854 | 2857 | 99.9% | -| ov_SC04_019 | 2855 | 1899 | 0 | 2855 | 2857 | 99.9% | +| ov_SC04_019 | 2856 | 1899 | 0 | 2856 | 2857 | 100.0% | | ov_SC04_020 | 2554 | 1820 | 0 | 2566 | 2567 | 100.0% | | ov_SC04_021 | 2423 | 1815 | 0 | 2423 | 2423 | 100.0% | -| ov_SC05_000 | 2418 | 1815 | 0 | 2421 | 2422 | 100.0% | -| ov_SC05_001 | 2567 | 1813 | 0 | 2572 | 2574 | 99.9% | -| ov_SC05_002 | 2438 | 1811 | 0 | 2441 | 2442 | 100.0% | +| ov_SC05_000 | 2419 | 1815 | 0 | 2422 | 2422 | 100.0% | +| ov_SC05_001 | 2568 | 1813 | 0 | 2573 | 2574 | 100.0% | +| ov_SC05_002 | 2439 | 1811 | 0 | 2442 | 2442 | 100.0% | | ov_SC05_003 | 2479 | 1811 | 0 | 2480 | 2481 | 100.0% | | ov_SC05_004 | 2462 | 1811 | 0 | 2464 | 2464 | 100.0% | -| ov_SC05_005 | 2488 | 1825 | 0 | 2489 | 2491 | 99.9% | +| ov_SC05_005 | 2488 | 1825 | 0 | 2489 | 2490 | 100.0% | | ov_SC05_006 | 2430 | 1813 | 0 | 2430 | 2430 | 100.0% | | ov_SC05_007 | 2477 | 1812 | 0 | 2482 | 2482 | 100.0% | -| ov_SC05_008 | 2536 | 1812 | 0 | 2538 | 2543 | 99.8% | +| ov_SC05_008 | 2537 | 1812 | 0 | 2539 | 2543 | 99.8% | | ov_SC05_009 | 2434 | 1811 | 0 | 2438 | 2438 | 100.0% | | ov_SC05_010 | 2576 | 1816 | 0 | 2580 | 2588 | 99.7% | -| ov_SC05_011 | 2406 | 1812 | 0 | 2407 | 2409 | 99.9% | +| ov_SC05_011 | 2407 | 1812 | 0 | 2408 | 2409 | 100.0% | | ov_SC05_017 | 2830 | 1811 | 0 | 2841 | 2842 | 100.0% | | ov_SC05_018 | 2655 | 1819 | 0 | 2668 | 2673 | 99.8% | | ov_SC05_019 | 2423 | 1815 | 0 | 2423 | 2423 | 100.0% | @@ -212,19 +212,19 @@ FLEET matchable : 362964 | ov_SC06_014 | 2451 | 1811 | 0 | 2453 | 2453 | 100.0% | | ov_SC06_015 | 2421 | 1811 | 0 | 2421 | 2421 | 100.0% | | ov_SC06_016 | 2547 | 1816 | 0 | 2549 | 2549 | 100.0% | -| ov_SC06_018 | 2654 | 1812 | 0 | 2661 | 2665 | 99.8% | -| ov_SC06_020 | 2514 | 1813 | 0 | 2515 | 2518 | 99.9% | -| ov_SC06_022 | 2628 | 1811 | 0 | 2636 | 2642 | 99.8% | -| ov_SC06_024 | 2656 | 1811 | 0 | 2662 | 2667 | 99.8% | -| ov_SC06_025 | 2563 | 1811 | 0 | 2568 | 2572 | 99.8% | +| ov_SC06_018 | 2655 | 1812 | 0 | 2662 | 2665 | 99.9% | +| ov_SC06_020 | 2515 | 1813 | 0 | 2516 | 2518 | 99.9% | +| ov_SC06_022 | 2629 | 1811 | 0 | 2637 | 2642 | 99.8% | +| ov_SC06_024 | 2657 | 1811 | 0 | 2663 | 2667 | 99.9% | +| ov_SC06_025 | 2565 | 1811 | 0 | 2570 | 2572 | 99.9% | | ov_SC06_027 | 2407 | 1811 | 0 | 2408 | 2408 | 100.0% | | ov_SC06_029 | 2634 | 1816 | 0 | 2646 | 2662 | 99.4% | | ov_SC06_030 | 2455 | 1816 | 0 | 2455 | 2456 | 100.0% | -| ov_SC06_032 | 2644 | 1812 | 0 | 2651 | 2657 | 99.8% | +| ov_SC06_032 | 2645 | 1812 | 0 | 2652 | 2657 | 99.8% | | ov_SC06_033 | 2620 | 1812 | 0 | 2627 | 2630 | 99.9% | -| ov_SC07_000 | 2510 | 1816 | 0 | 2512 | 2521 | 99.6% | +| ov_SC07_000 | 2511 | 1816 | 0 | 2513 | 2521 | 99.7% | | ov_SC07_001 | 2449 | 1812 | 0 | 2451 | 2454 | 99.9% | -| ov_SC07_002 | 2568 | 1816 | 0 | 2572 | 2578 | 99.8% | +| ov_SC07_002 | 2569 | 1816 | 0 | 2573 | 2578 | 99.8% | | ov_SC07_006 | 2373 | 1630 | 0 | 2453 | 2457 | 99.8% | | ov_SC07_007 | 2525 | 1666 | 0 | 2608 | 2612 | 99.8% | | ov_SC07_008 | 2386 | 1812 | 0 | 2386 | 2386 | 100.0% | diff --git a/docs/wave-playbook.md b/docs/wave-playbook.md index a535f8e89..c0784bb79 100644 --- a/docs/wave-playbook.md +++ b/docs/wave-playbook.md @@ -234,8 +234,17 @@ Or in one driver: `recover_integration.py --binary B --stages arity,self-cast -- > drafting agents reported BASELINE-RED and I checked their claim). Run `--undo-journal --keep > ` after EVERY gate. -If the diagnostic names a DIFFERENT symbol (`conflicting types for func_8012AD44`), run the same -chain on THAT symbol — it is a callee, not your target. That banked `main:func_80021D38`. +**CORRECTED S69 — the callee variant is NOT the same chain.** If the diagnostic names a DIFFERENT +symbol (`conflicting types for func_8012AD44`), that is a CALLEE and §378 does **not** transfer: +`cast_self_callers` cannot cast it (it reads the return type off the draft), so `--any-proto` runs +UNPROTECTED and changes argument conversion at every call site. Measured: 60 decls no-protoed, +binary RED, reverted. It banked `main:func_80021D38` only because that callee had ONE decl. +**Count the sites first; never no-proto a symbol whose call sites you are not also casting.** + +See §378b for the full decision table — there are FOUR variants and two of them break the chain. +Notably variant 3 (`conflicting types`, RETURN type only, decl already `()`, symbol ADDRESS-TAKEN) +is fixed by `--sync-decls` ALONE: both other levers no-op, and the sync is safe precisely because an +address-taken site has no arguments to convert. ## 5. Draft