Files
BFM-decomp/phase-ends/current/logs/T7.md
T

1.7 KiB

T7 log — GTE to one spelling (attempt 1, returned question)

  • Start: HEAD 64ea93a7a4; no restruct_cycle running (pgrep).
  • lever_census --check --strict --residue config/lever_residue.tsv (.run/logs/t7_strict0.log): pins 1868, asm 1409, gte-levers 434, direct GTE statements in bodies 6733, per-TU asm macro definitions 314 {gte 150, launder 154, instruction 9, barrier 1} (GTE variants 64); asm kinds gte/direct 207, gte/via-macro 6256, gte-unsigned/direct 270, gte-lever/direct 346, gte-lever/via-macro 88.
  • gte_consolidate --status (.run/logs/t7_gte_status.log): 830 rows {CONSOLIDATED 638, REFUSED 53, UNCHANGED 6, SWEPT-all 133}.
  • retriever-code (no report file), question: how strict computes direct_gte and pt. Answer:
    • lever_census.py:1133 direct_gte = cls B, kind in (gte, gte-unsigned), tu != gte_header; no via filter → every call of an include/gte_inline.h macro in a .c body counts (6256 of 6733).
    • pt (:954) = every asm-bearing #define outside the --gte-header path, any kind (launder/instruction/barrier included); residue TSV cannot cover pt (:1142-1143 synthetic fail).
    • gte_consolidate render_header (:398) emits canonical only; variants recorded in JSON, never emitted (T7 must add that).
  • Decision: done-when clauses 1-2 as gated are unreachable without a plan change → return question before any src edit.
    • Clause "0 direct GTE statements" counts the canonical spelling itself (header-macro calls); zero would mean no GTE in bodies, contradicting "call vs inline left per site" and the header being the one spelling.
    • Clause "0 per-TU asm macro definitions" includes 164 non-GTE launder/instruction/barrier macros, outside the task's GTE scope and files list.
  • No coder spawned, no src/tools edit.