You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Per theologian [chat 2026-04-22 19:26Z] methodology catch on e8b8c14:
mutating only hir_c_api.h would fail in hir_c_api.cpp first (header-vs-
impl mismatch) BEFORE any §1b consumer compiles. That outcome would
prove Step A header-impl consistency is tight, NOT the §1b drift
surface this test should expose.
CORRECT METHODOLOGY: mutate BOTH hir_c_api.h decl AND hir_c_api.cpp
impl together. With consistent .h+.cpp:
- hir_c_api.cpp compiles (matches header)
- §1a consumers see new sig from header → catch wrong-arg-count callers
at compile time (proves §1a path is protected)
- §1b consumers with local extern decls keep their OLD signature →
callers in those TUs compile fine against local extern, then linker
resolves to new-impl-signature → silent runtime UB (PROVES §1b is
the unprotected drift surface — exactly what Step B closes)
CHANGES (docs/w25-step-b-mutation-test.md):
§1: explain dual-file requirement upfront, original + mutated sigs
shown for both .h and .cpp
§2: dual-sed procedure (.h decl + .cpp impl signature line both)
verify both mutations applied + revert both files
§4: post-Step-B procedure also dual-sed
Authorization chain:
- Theologian methodology catch: chat 2026-04-22 19:26Z
- HALT message before testkeeper baseline run: this session
- Doc supersedes e8b8c14 procedure (no amend per CLAUDE.md;
next-commit correction)
0 commit comments