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)
Build / build-amd64-iso (push) Canceled after 0s
Build / build-aarch64-iso (push) Canceled after 0s
Build / build-riscv64-img (push) Canceled after 0s

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:
Robert Allan James
2026-09-15 20:25:30 -04:00
co-authored by Claude Sonnet 5
parent 90c86c6006
commit 42d4bf3dad
10 changed files with 27228 additions and 11 deletions
+30
View File
@@ -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.