diff --git a/docs/v4.0.0/MACHINE.md b/docs/v4.0.0/MACHINE.md index 444a570f..68f417b3 100644 --- a/docs/v4.0.0/MACHINE.md +++ b/docs/v4.0.0/MACHINE.md @@ -51,9 +51,14 @@ width (32 and 64 bits). them. They hold everything written in opcodes: the stack and arithmetic words, the registers and ports, and the FORTH machinery itself (the text interpreter, `:` and `;`, the dictionary). -3. **FORTH.** The interpreter just built compiles `forth79.4th`, then the StarForth system - `.4th` words. Ruled: the kernel loads `forth79.4th` as the system's own vocabulary, before - POST and before `init.4th`, the way v3 registers its words. +3. **FORTH.** The interpreter just built compiles the `.4th` capsules, in three layers + (ruled 2026-10-15): + 1. **`forth79.4th`**: the FORTH-79 Standard, adhered to 100 percent. + 2. **`starforth.4th`**: the StarForth words. + 3. **Anything else**: every other capsule, such as `starshipos.4th`. + + Ruled: the kernel loads `forth79.4th` as the system's own vocabulary, before POST and before + `init.4th`, the way v3 registers its words. 4. **POST**, with the existing test DSL: the case table `v4/system/post_cases.c` (name, lines, expected error, stack and output) and its runner `v4/system/post.c`. Seal before it, `COLD` after, as now. @@ -126,3 +131,10 @@ Each step is accepted as `.claude/CLAUDE.md` says: it lets `mkpost.py` write POST's cases again. 4. **ROM size.** It is whatever the assembler and blob reader take. It is set when step 1 is built. +5. **Where `starforth.4th` loads.** Proposed: with `forth79.4th`, by the kernel and before + POST, because v3's StarForth words are system words and v3's POST covers them. Layer 3 is + `init.4th`'s. +6. **Where the standard's names live.** "100 percent" in `forth79.4th`: does it name all 130 + Required words, including the ones that are single opcodes (`DUP`, `+`, `@`)? Proposed: yes. + The `.f18` primitives carry their own names, and `forth79.4th` gives every standard word its + standard name and behaviour. The `.f18` layer then holds no FORTH-79 names at all.