Files
BFM-decomp/phase-ends/current/logs/T4.c2.md
T
2026-10-02 04:56:56 -06:00

3.2 KiB

T4.c2 — rung S sweep: md_*, main, shared (Phase 3.39)

Cycles

  • md_*: LABEL_PREFIX=t4_md_ (pid 1360696, launched by c1/expert), log .run/P37/restruct/cycle_t4_md.log; 5 batches t4_md_S1..S5, all final N/N identical, R22 218/218 each; S6 "nothing drawable", exit=0. Commits 3a259e019 ef3cab304 52b50095e 93260530b 773878d86. Sites → members: 692+1509+30+12+25 = 2268.
  • main: LABEL_PREFIX=t4_main_, log .run/P37/restruct/cycle_t4_main.log; 1 batch t4_main_S1 (3 TUs drawable, 76 sites → members, written 1 file), R22 218/218, commit f6f4ae75d; S2 nothing drawable, exit=0.
  • shared: --plan --rung S --only "src/shared/*" --headers → 0 drawable; skipped bases {type-not-canonical 3054, type-not-visible 1}. Non-headers plan → 0 bodies (src/shared/* holds only .h: ov 3148, slot_* 26, main 1). No t4_sh_/t4_shc_ cycle run (nothing to draw).
  • Every cycle exit had X == Y (final identical); no --restore needed; git status src clean after each.
  • Readability snapshot "refused (a stale census?)" on every batch: cycle continues; not gating.

Residue (commit c2ea6e5428, ledger force-added)

  • t4_res_md: 710 rows · 4847 sites · causes TYPE-NOT-CANONICAL 4815, NO-TYPE-IN-MAP 31, FILE-SCOPE 1
  • t4_res_main: 265 rows · 1740 sites · TYPE-NOT-CANONICAL 1712, NO-TYPE-IN-MAP 19, FILE-SCOPE 9
  • t4_res_sh: 1708 rows · 11452 sites · TYPE-NOT-CANONICAL 11353, NO-TYPE-IN-MAP 90, TYPE-NOT-VISIBLE 9
  • --check-residue uncovered 0 sites / 0 bodies for md_, main, src/shared/, ov_*.
  • harness: commit_task.sh re-runs plain git add on passed paths, which fails for the gitignored ledger even after git add -f; workaround: git add -f then commit_task.sh with NO path args (commits what is staged).

P/X before → after (sites.jsonl after refresh; scratch .run/t4c2_scope_px.py)

  • md 9047 → 6222
  • top-level main 1755 → 1672
  • resident 78 → 78
  • shared/ov 11428 → 11428
  • shared/slot_* 23 → 24 (+1; not investigated; no shared header was edited this task)
  • Residual cause everywhere: overwhelmingly TYPE-NOT-CANONICAL (bases whose type is not the canonical header type); no head_types --add-pads fan-out attempted.

Census / checks

  • type_census.py refreshed; --check-structs --quiet → OK, rc 0 (twins_stale=0, dead_kept=2; no docs/struct-twins.md edit needed).
  • --check-casts --quiet rc 1: check-casts: raw P=257464 I=51505 X=13790 M=15130; macros CAST_ALIAS=1173 CAST_SIGN=8429 CAST_WIDTH=10410 CAST_MISALIGNED=624 CAST_NONSTRUCT=327 (unbacked 0); lying=229 (ledgered 0) (T3 close P=260372 I=51514).

R22

  • Final: .run/logs/t4_final_r22.log (make clean && extract-all && check-all JOBS=16) → check-all: 218 passed, 0 failed of 218.

gate_main finding

  • tools/gate_main.py takes a slate.json [{"fn","draft",binary?}] from gate_lane: byte-verifies decompiled-function drafts substituted into main TUs (and git-checkouts them). restruct.py / restruct_cycle.sh never reference it; restruct judges via delever_oracle per-object equality, the cycle via clean fleet R22 (config/check.main.sha is one of the 218). gate_main does NOT apply to rung S slates; main's rung-S gate = per-object oracle + cycle R22. (Source: retriever-code read of gate_main.py:32-33,243-249; restruct_cycle.sh:29,59.)

Tools edits

  • none (no kit-corpus/tools-health needed).