Skip to content

Commit 74bf7fc

Browse files
committed
docs: W25 §5.3 POST-STEP-B mutation result — drift CAUGHT (PASS)
Per supervisor [chat L2328] task assignment + testkeeper L2327 execution + spec §5 acceptance gate. End-to-end §5.3 falsification COMPLETE. EMPIRICAL RESULT (testkeeper executed): Mutation: hir_c_insert_before +3rd arg in BOTH hir_c_api.h:740 + hir_c_api.cpp:2349 Build cmd: scripts/build_phoenix.sh HEAD: ab07641 (post-Step-B substantive close) BUILD_EXIT=2 ← DRIFT CAUGHT at compile time Compile errors (6 call sites across 3 §1b TUs): licm_c.c:244:50 pass_output_type_c.c:981:53, 989:48, 1054:59 simplify_c.c:40:57, 2829:54 All 'too few arguments to function call, expected 3, have 2'. §5.3 ACCEPTANCE PER SPEC §5: PASS END-TO-END PRE-STEP-B baseline (push 67 commit 911e173): BUILD_EXIT=0 = drift undetected POST-STEP-B re-run (HERE): BUILD_EXIT=2 = drift caught at compile time Step B closed §1b drift surface as designed. CHANGES (+22/0): Appended POST-STEP-B section to docs/w25-step-b-mutation-baseline.txt (PRE-STEP-B section landed in push 67 commit 911e173). INTERPRETATION: Pre-Step-B: §1b TUs each held a local 2-arg extern shadowing canonical decl. 2-arg call sites compiled fine; linker silently bound to impl by name. Result: silent runtime UB at runtime if call sites executed with mismatched arg counts. Post-Step-B: local externs DELETED + #include hir_c_api.h ADDED in each §1b TU. New 3-arg canonical sig visible at compile time. 2-arg call sites now fail compile with clear errors. Drift caught BEFORE link; no silent UB possible. NOW LEGITIMATELY: Step B closes §1b drift surface — empirically validated per spec §5 acceptance criterion. Per pythia python#83 python#2 framing-precision: mechanical work + dual-typedef collision resolution landed at push 75 ab07641; formal §5.3 closure landed HERE. AUTHORSHIP: testkeeper executed §5.3 procedure (chat L2327); generalist commits artifact per role boundary (push 67 precedent). Authorization chain: - W25 spec §5: theologian L2017 (procedure design) - §5.3 procedure with corrections: 2ed74a9 doc landed in push 67 - testkeeper EXECUTED + verbatim output: chat L2327 - Supervisor task assignment: chat L2328
1 parent 92ec470 commit 74bf7fc

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

docs/w25-step-b-mutation-baseline.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,27 @@ Pre-Step-B reality:
1313
Per theologian [chat 19:29Z] acceptance flip: BUILD_EXIT=0 = baseline PASS
1414

1515
Bonus pre-existing drift (no mutation needed): pass_output_type_c.c local externs use 'void *block' for hir_bb_*; canonical hir_c_api.h post-Step-A uses 'struct HirBasicBlock *block'. ABI-compat at 8 bytes silently links today.
16+
17+
=== POST-STEP-B (post-Step-B substantive close, dual-mutation .h+.cpp at HEAD ab0764195ee24b3b378192b54f7eac340da60fd3) ===
18+
Mutation: hir_c_insert_before added 3rd arg (void *unused_drift_param) in BOTH .h (line 740) and .cpp (line 2349)
19+
20+
BUILD_EXIT=2 ← DRIFT CAUGHT at compile time = §1b drift surface CLOSED by Step B
21+
22+
Compile errors (6 call sites across 3 §1b TUs):
23+
Python/jit/hir/licm_c.c:244:50 — too few arguments to function call, expected 3, have 2
24+
Python/jit/hir/pass_output_type_c.c:981:53 — too few arguments to function call, expected 3, have 2
25+
Python/jit/hir/pass_output_type_c.c:989:48 — too few arguments to function call, expected 3, have 2
26+
Python/jit/hir/pass_output_type_c.c:1054:59 — too few arguments to function call, expected 3, have 2
27+
Python/jit/hir/simplify_c.c:40:57 — too few arguments to function call, expected 3, have 2
28+
Python/jit/hir/simplify_c.c:2829:54 — too few arguments to function call, expected 3, have 2
29+
30+
Post-Step-B reality:
31+
- hir_c_api.cpp compiles header+impl-consistent on new sig
32+
- §1b TUs (licm_c.c + pass_output_type_c.c + simplify_c.c) NO LONGER hold local externs (deleted in Step B-1/B-3/B-5)
33+
- Each §1b TU now #includes hir_c_api.h directly → sees canonical 3-arg sig
34+
- 2-arg call sites at the 6 listed locations fail with clear 'too few arguments' compile error
35+
- Drift caught BEFORE link, no silent runtime UB possible
36+
37+
§5.3 acceptance per spec §5: PASS end-to-end (PRE-STEP-B BUILD_EXIT=0 + POST-STEP-B BUILD_EXIT≠0 with errors at expected §1b TUs).
38+
39+
Authorship: testkeeper executed procedure (chat L2327); generalist commits artifact per role boundary (push 67 precedent).

0 commit comments

Comments
 (0)