docs(v4): MESH.md 9a, the rulings made while planning step 7
Fixed request numbers; NODE-BORN takes the number; GONE handed on through the system's (GONE-HOOK), so dict_hash changes; a reader per asker. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f4f566bb37
commit
bf97f339f6
+33
-8
@@ -1409,7 +1409,10 @@ Checked in the code on 2026-10-16 (`kernel/src/capsule/mama_forth_words.c`,
|
||||
capsule. It gains the child's port.
|
||||
- `UNIT ( n -- )`, as now, giving `childport` 2.
|
||||
- The words that join two outer nodes (`(JOIN)`, `(SAY)`), as now.
|
||||
- Passing a believed GONE on to the nodes this node birthed.
|
||||
- `GONE-DOWN ( n -- )`: n is gone; every node this one birthed is told,
|
||||
as from this one, and n leaves its table if it was one of them. It is
|
||||
put in the system's `(GONE-HOOK)` when the capsule is loaded, before
|
||||
the node seals.
|
||||
- **`hera.4th`**: what is Hera's alone.
|
||||
- `KILL ( n -- )`, `PAUSE ( n -- )`, `RESUME ( n -- )`.
|
||||
- `UNIT-KILL ( n -- )`: asks the kernel for n's children, kills each, and
|
||||
@@ -1417,15 +1420,25 @@ Checked in the code on 2026-10-16 (`kernel/src/capsule/mama_forth_words.c`,
|
||||
- `CENTRE ( n -- )`: births node n on her port 6 into its port 6 with
|
||||
`S" v4:centre.4th" BIRTH-AS`, sets her way to n+1 to n+4 to port 6,
|
||||
and sends it the text `n UNIT`, waiting for it to end.
|
||||
- Her own table of the nodes she birthed goes: the kernel's registry
|
||||
replaces it.
|
||||
|
||||
**The system's part (ruled 2026-10-16, planning).** A node believes a GONE
|
||||
in the system (`(GONE?)`, `capsules/v4/sys/quit.f18`), so the system hands
|
||||
it on: a variable, `(GONE-HOOK)`, holds the xt of a word that is given the
|
||||
number of the node that is gone; 0, as at switch-on, does nothing. `COLD`
|
||||
clears it if it points at or above the sealed system.
|
||||
- Her table of the nodes she birthed is `centre.4th`'s, as every
|
||||
centre's is: it is whom she tells a GONE. A node she did not birth she
|
||||
finds through the kernel's registry.
|
||||
|
||||
### 9a.4 The kernel (`v4/include/v4/manage.h`, `v4/src/manage.c`)
|
||||
|
||||
- **The registry.** For each live node: its number, its place, and its
|
||||
parent's number. A node is entered when its birther reports its parity
|
||||
(`NODE-PARITY`), which gains the parent: the node that asks. A number
|
||||
that is already live is refused, as v3 refuses a name that is live.
|
||||
parent's number. A node is entered when it is born, with the node that
|
||||
asked as its parent: `NODE-BORN ( number -- place | -1 )` takes the
|
||||
number (ruled 2026-10-16, planning). A number that is already live is
|
||||
refused before anything is sent, as v3 refuses a name that is live; -1
|
||||
is no room. Hera is entered by whoever made her, as v3's kernel enters
|
||||
Hera at boot.
|
||||
- **Every node's port 0 serves the requests**, and the kernel checks who
|
||||
may ask:
|
||||
|
||||
@@ -1442,6 +1455,17 @@ Checked in the code on 2026-10-16 (`kernel/src/capsule/mama_forth_words.c`,
|
||||
not live does nothing, as v3's `KILL` of a dead VM.
|
||||
- **Two queries:** `NODE-CHILD ( number i -- child | 0 )`, the i-th live
|
||||
child of that node; `NODE-PLACE ( number -- place | -1 )`.
|
||||
- **The requests' numbers are fixed** (ruled 2026-10-16, planning): -6 to
|
||||
-18, below the block requests' -1 to -5 (`v4/include/v4/blocks.h`), the
|
||||
same for every node. The capsules make the words themselves
|
||||
(`-7 KERNEL-WORD NODE-BORN`); no host types them in.
|
||||
|
||||
| -6 | -7 | -8 | -9 | -10 | -11 | -12 | -13 | -14 | -15 | -16 | -17 | -18 |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| `NODE-ME` | `NODE-BORN` | `NODE-WIRE` | `NODE-UNWIRE` | `NODE-SLEEP` | `NODE-WAKE` | `NODE-KILL` | `NODE-PARITY` | `CAPSULE-OPEN` | `CAPSULE-CELL` | `CAPSULE-LINE` | `NODE-CHILD` | `NODE-PLACE` |
|
||||
|
||||
- **A capsule is read by the node that opened it** (ruled 2026-10-16,
|
||||
planning): two nodes birthing at once do not share one reader.
|
||||
|
||||
### 9a.5 Not in this step
|
||||
|
||||
@@ -1487,8 +1511,9 @@ Each test is written to fail first.
|
||||
both cell widths.
|
||||
7. **Nothing else changes.** `make -C v4 test test-32 sanitize
|
||||
hosted-check`; `mkcapsule --lint capsules/`; the three QEMU boots and
|
||||
`make -C v4 test-32`, as `.claude/CLAUDE.md` says. The products load
|
||||
neither capsule, so their `dict_hash` must not move.
|
||||
`make -C v4 test-32`, as `.claude/CLAUDE.md` says. The system changes
|
||||
(`(GONE-HOOK)`), so the products' `dict_hash` changes; it must be the
|
||||
same on all three ISAs (ruled 2026-10-16, planning).
|
||||
|
||||
**A limit kept, not widened:** `test_host_unit.c` is not run at 32 bits;
|
||||
POST's expected results are 64-bit (step 5).
|
||||
|
||||
Reference in New Issue
Block a user