proof/: add StarForth_System_Words.thy (system_words.c coverage)
10 of 16 registered words modeled (COLD/WARM/BYE/WORDS/VLIST/PAGE/NOP/ QUIT/ABORT/EXECUTE guard-shape), plus the internal (ABORT") runtime helper. Deferred: ( and \ (TIB dependency), SAVE-SYSTEM (real file I/O), 79-STANDARD (reads a non-per-VM global), ABORT" compile-time half (TIB + codegen), SEE (TIB + raw threaded-code pointer walk). Two findings. (1) system_running/forth_79_standard are file-scope C statics doing per-VM-shaped work -- the 5th and 6th occurrence of this bug pattern in the sweep (previously: control_words.c's cf_stack, dictionary_manipulation_words.c's state_variable, string_words.c's word_scratch_addr). (2) EXECUTE casts a popped FORTH cell straight to a DictEntry host pointer and calls through it (entry->func(vm)), gated only by a null check -- same hazard class as format_words.c's ?/DUMP but far more consequential since EXECUTE is a core, ubiquitous primitive rather than a diagnostic word. Flagged as the highest-severity finding this sweep has produced.
This commit is contained in:
@@ -18,6 +18,7 @@ session "StarForth" = "HOL-Library" +
|
||||
StarForth_IO_Words
|
||||
StarForth_Editor_Words
|
||||
StarForth_Format_Words
|
||||
StarForth_System_Words
|
||||
StarForth_Mutex
|
||||
StarForth_Transition
|
||||
StarForth_Loop1_Heat
|
||||
|
||||
Reference in New Issue
Block a user