proof/: add StarForth_Vocabulary_Words.thy (vocabulary_words.c coverage)
1 of 7 registered words modeled, partially: (FIND)'s two concretely- decidable failure branches (invalid address; invalid length-derived range). Its "found" branch, and VOCABULARY/DEFINITIONS/CONTEXT/CURRENT/ FORTH/ORDER entirely, are deferred. Genuine finding: this is the 7th and by far most severe occurrence of the file-scope-static-instead-of-per-VM-field bug pattern in this sweep. The ENTIRE vocabulary subsystem (forth_vocab/context_vocab/current_vocab, context_var_addr/current_var_addr, the first-character search index) is file-scope C statics, not struct VM fields. In the Tripod multi-VM fleet, one VM's VOCABULARY/DEFINITIONS/FORTH silently changes where every other VM looks up and defines words -- a correctness hazard in ordinary word resolution for the whole fleet, not just a diagnostic-flag leak like the smaller prior instances. init_vocabulary_system's `static int initialized` guard compounds this: only the first VM to touch any vocabulary word seeds the vocabulary roots, from its own dictionary.
This commit is contained in:
@@ -19,6 +19,7 @@ session "StarForth" = "HOL-Library" +
|
||||
StarForth_Editor_Words
|
||||
StarForth_Format_Words
|
||||
StarForth_System_Words
|
||||
StarForth_Vocabulary_Words
|
||||
StarForth_Mutex
|
||||
StarForth_Transition
|
||||
StarForth_Loop1_Heat
|
||||
|
||||
Reference in New Issue
Block a user