word_source: repair DECAY-RATE@ overflow guard and remove dead shadowed registrations
DECAY-RATE@ (physics_freeze_words.c) pushed to the data stack with no capacity check and no prior pop to make room, unlike its neighbors in the same file -- the one live, unconditional missing-guard bug the Isabelle sweep's ~15 candidate findings reduced to once checked against vm_push()'s real internal bounds check (see proof/FINDINGS.md SS2). Removed dictionary_manipulation_words.c's [ ] STATE and defining_words.c's DEFER IS DEFER@ (plus the now-orphaned defining_runtime_defer helper) -- all confirmed permanently shadowed by later dictionary registrations (defining_words.c and defer_words.c respectively), per FORTH's newest-first lookup. No behavior change: the removed code was already unreachable. Verified: hosted `make` builds clean under -Wall -Werror; the hosted self-test suite passes 965/965 implemented tests with no regressions. Three-architecture QEMU acceptance boot, all clean to ok> with an identical dict_hash=0x24b4279f0670aa3a across amd64/aarch64/riscv64 and identical 1003/965/0/0 test totals -- logs attached. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3426d6a4a7
commit
dfdabcc2d7
@@ -14,8 +14,13 @@ begin
|
||||
`STATE` (Module 17, line 126). FORTH dictionary lookup finds the MOST
|
||||
RECENT definition of a name first, so defining_words.c's versions are
|
||||
the only ones ever reachable -- dictionary_manipulation_words.c's `[`/
|
||||
`]`/`STATE`/`INTERPRET` are permanently shadowed, dead code from the
|
||||
moment boot registration completes.
|
||||
`]`/`STATE` are permanently shadowed, dead code from the moment boot
|
||||
registration completes. CORRECTED 2026-08-14: `INTERPRET` is NOT part of
|
||||
this shadow -- defining_words.c never registers a word named INTERPRET
|
||||
at all (confirmed by grep), so dictionary_manipulation_words.c's
|
||||
INTERPRET is the only registration that exists and is live, not dead.
|
||||
The earlier version of this note (and proof/FINDINGS.md) incorrectly
|
||||
folded it into the shadowed group.
|
||||
|
||||
This also CORRECTS that file's finding, not just supersedes it: its
|
||||
`[`/`]`/`STATE` write/read a dead file-scope `static cell_t
|
||||
|
||||
Reference in New Issue
Block a user