Commit dac46b9
committed
W25 Step C: lint gate — catch local extern decls of API functions
Per W25 spec docs/w25-hbb-canonicalization.md §3 Step C + theologian
[chat L2347] revised lint pattern. Final W25 step — makes the §1b
drift surface mechanically uncloseable post-Step-B.
LINT PATTERN (theologian L2347):
^[[:space:]]*extern[[:space:]]+.*hir_(c_|cfg_|block_|bb_|edge_|func_|instr_)
- ^[[:space:]]*extern matches BOTH file-scope (^extern) AND function-scope
( extern indented). Catches the L2280 blind-spot class.
- hir_(c_|cfg_|block_|bb_|edge_|func_|instr_) namespace prefixes
- --exclude=hir_c_api.h (canonical decls) + hir_basic_block_c.h
(canonical decls) + builder.cpp (legitimate extern "C" bridge impls)
VERIFIED at HEAD 0d1851d (post-77a + 77a-fix): 0 violators (clean
baseline). Step B closed the lint surface; lint gate prevents
regression.
CHANGES (+25/0):
scripts/gate_phoenix.sh: new Step 1d "W25 Lint Gate" between Step 1c
Preserved Symbol Check and Step 2 JIT Smoke Test. Sets GATE_PASS=0 +
appends w25_lint:<count> to FAILURES if violators found. Prints
actionable fix message (delete extern + #include canonical header).
DISCIPLINE NOTE: lint runs on every gate cycle. Future regressions to
local externs of canonical API functions get caught at gate time
instead of in §5.3 mutation re-runs (which only sample one function).
NEXT per supervisor [chat L2364] sequence:
Push 78: §5.3 POST-STEP-B-FINAL re-run with hir_c_create_* mutation
(validates function-scoped path per theologian L2351)
Then: INVOKE_* Phase 2 per Option B continuation
Authorization chain:
- W25 spec §3 Step C: theologian L2017
- Lint pattern revision (function-scope catch): theologian L2280 + L2347
- Push 77b sequencing: supervisor L23641 parent 0d1851d commit dac46b9
1 file changed
Lines changed: 23 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
170 | 193 | | |
171 | 194 | | |
172 | 195 | | |
| |||
0 commit comments