Stage D batch 7 (final): mama_forth_words.c groups 5+6 -- dictionary lookup/test words + Stadium primitives; Stage D closed (FABRIC-3.md §XXXII.6)
NAME>XT/RUNCAP-TEST/PAIR-TEST and the six STADIUM-* physics primitives (STADIUM-ADMIT/STADIUM-EVICT/STADIUM-RES-PULL/STADIUM-RES-PUSH/ STADIUM-HEAT@/STADIUM-HEAT!), 12 sites -- closes mama_forth_words.c and the entire kernel-only error-handling audit. All 105 sites from the §XXXII.3 triage now accounted for: 28 already correct, 75 silent sites fixed across repl.c/inference_words.c/ log_words.c/vm_core.c/mama_forth_words.c, 2 special cases resolved by dropping the error per their own documented contract, 1 resolved via console_println() per its own recursion constraint. Verified with awk: zero remaining vm->error=1 sites in mama_forth_words.c lack a diagnostic within the preceding three lines. Three-arch clean qemu acceptance passed. This closes Stage D and the USE/logging/audit thread opened in §XXXII; Stage E (human-vs-unattended identity model) remains open, not started this pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
90c86c6006
commit
42d4bf3dad
+30
@@ -4669,3 +4669,33 @@ and `ELEVATE-PUBKEY-UNPACK` have no sibling guard in their own function bodies -
|
||||
regression unaffected -- including the `mint_pop_string()` signature change compiling cleanly
|
||||
across all four call sites.
|
||||
|
||||
**Batch 7 -- DONE, 2026-09-15: groups 5+6 (dictionary lookup/diagnostic-test words `NAME>XT`/
|
||||
`RUNCAP-TEST`/`PAIR-TEST`, and the six `STADIUM-*` physics primitives) -- 12 sites. Closes
|
||||
`mama_forth_words.c`, and with it the entire kernel-only error-handling audit.** `RUNCAP-TEST`
|
||||
and `PAIR-TEST` matched their own existing `console_println()` siblings. `NAME>XT` and all six
|
||||
`STADIUM-*` primitives (`STADIUM-ADMIT`/`STADIUM-EVICT`/`STADIUM-RES-PULL`/`STADIUM-RES-PUSH`/
|
||||
`STADIUM-HEAT@`/`STADIUM-HEAT!`) have no sibling guard -- kept `log_message()`, the file's
|
||||
established default for a function with nothing else to match.
|
||||
|
||||
**Verified:** three-architecture `clean qemu` acceptance (amd64/aarch64/riscv64) passed.
|
||||
|
||||
**Stage D closed.** All 105 sites from §XXXII.3's triage now accounted for: 28 were already
|
||||
correct (untouched), 75 silent sites across `repl.c`/`inference_words.c`/`log_words.c`/
|
||||
`vm_core.c`/`mama_forth_words.c` gained diagnostics (or, for the two flagged special cases,
|
||||
had their error dropped entirely to match their own documented contract), and the one remaining
|
||||
category-iii site (`log_word_append_raw()`) was resolved with `console_println()` per its own
|
||||
recursion constraint. Verified with `awk` across the full file after the final batch: zero
|
||||
`vm->error = 1;` sites anywhere in `mama_forth_words.c` lack a diagnostic within the preceding
|
||||
three lines. Seven commits total for Stage D (`5417ffb`, `1a8c0e4`, `66c2f3e`, `b42c3b1`,
|
||||
`8b5300f`, `90c86c6`, and this one), each its own 3-arch acceptance boot, two real bugs found
|
||||
and fixed along the way (`vm_compile_call()`/`vm_exit_compile_mode()`'s NULL-deref risk,
|
||||
batch 3) that were never part of the original scope but surfaced directly from doing the fix
|
||||
carefully rather than mechanically.
|
||||
|
||||
This closes the four-part initiative opened in §XXXII: Stage A (`USE` fix, root-caused past the
|
||||
original symptom into the Hera-fault-scoping gap it exposed), Stage B (logging policy +
|
||||
level-aware eviction), Stage C (triage), Stage D (fixes, this entry). §XXXII.2's human-vs-
|
||||
unattended identity model remains open as Stage E, not started this pass -- its four design
|
||||
questions (§XXXII.2) still need settling on paper before any code, per that section's own
|
||||
"Stage E" plan.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user