docs(v4): MESH step 7 done -- a second unit, PAUSE, RESUME, KILL; acceptance
MESH.md step 7: what was built, the tests, the (DOWN) mend, the traced (LOST) finding; 9a.5: a centre killed mid-birth, and birth authority not yet tied to identity. v4/README.md: births follow v3. Acceptance at this commit's code: amd64, aarch64, riscv64 clean qemu, v4: ok>, POST 538/538, dict_hash=0x248b4edc47f4357e on all three; test-32 0 failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
4be9f37c12
commit
9382df69e5
@@ -1474,6 +1474,18 @@ clears it if it points at or above the sealed system.
|
||||
its access records at boot (`V3-PARITY.md` section 1, row 8), so there
|
||||
is nothing to copy yet. Stated, not stood in for.
|
||||
- **A mesh node's own memory size** (D-4, deferred).
|
||||
- **Who may birth is checked by the birth graph only, not by identity or
|
||||
access control.** Any node can ask the kernel for a birth by making the
|
||||
word itself (`-7 KERNEL-WORD X`), so a lockdown of its words cannot stop
|
||||
it. In v3 a VM minted with the FORTH-79 personality has `BIRTH` denied
|
||||
by its access records, and may birth only by the allowlist's deliberate
|
||||
carve-out (`FABRIC-3.md` §XXV). Harmless while v4 has no users; when
|
||||
identity comes (`ENGINE.md` step 8) the kernel must also check the
|
||||
asker's identity or access records before it births. Recorded
|
||||
2026-10-16, Captain Bob.
|
||||
- **A centre killed while it is still birthing its unit** leaves the nodes
|
||||
it had asked for and not yet given the system. They wait, empty, until
|
||||
Hera kills them by number. v3 has no such state: a VM is born whole.
|
||||
- **The products**: steps 8 and 9.
|
||||
|
||||
### 9a.6 Acceptance
|
||||
@@ -2051,6 +2063,47 @@ Each is tested, committed and pushed before the next.
|
||||
|
||||
7. **A second unit; scaling while running; sleep, wake and kill by
|
||||
command.** Designed 2026-10-16: section 9a.
|
||||
**Done 2026-10-16, in the fabric under test; the products are still one
|
||||
node each until steps 8 and 9.** Plan
|
||||
`docs/v4.0.0/plans/2026-10-16-mesh-step7-second-unit.md`.
|
||||
- *The kernel* (`v4/include/v4/manage.h`, `v4/src/manage.c`): the
|
||||
registry of live nodes, their numbers, places and parents; the
|
||||
requests at fixed numbers, -6 to -18; who may ask what (9a.4).
|
||||
`v4/tests/test_manage.c`, 41 checks at both widths.
|
||||
- *The system* (`capsules/v4/sys/quit.f18`, `system.f18`):
|
||||
`(GONE-HOOK)`; `(DOWN)` calls the word there when a GONE is believed,
|
||||
and puts `(ONE)` back after it; `COLD` takes out a hook it forgets.
|
||||
- *The capsules*: `capsules/v4/centre.4th` (`BIRTH-AS`, `BIRTH`, `UNIT`,
|
||||
`GONE-DOWN`, a node's table of the nodes it birthed) and
|
||||
`capsules/v4/hera.4th` (`KILL`, `PAUSE`, `RESUME`, `UNIT-KILL`,
|
||||
`CENTRE`).
|
||||
- *Tests.* `v4/tests/test_host_unit.c`, 125 checks: an outer node births,
|
||||
and may not kill, pause or wire what it did not birth; Hera's unit
|
||||
born again, and `20 CENTRE` while one of it is busy, the second unit's
|
||||
four with the first's dictionary hash; text across the two units and
|
||||
its answer; ten nodes idle, their anti-clocks still; `PAUSE` and
|
||||
`RESUME` of a node in a loop, text sent to it waiting until it is
|
||||
woken; GONE down the graph ending a wait in the second unit; a forged
|
||||
GONE not believed; `UNIT-KILL`, after which the first unit carries on.
|
||||
`v4/tests/test_host_mesh.c`, 253 checks: a GONE handed on, and the
|
||||
hand-on disturbed at every step, node 11 or 12 removed or the wire
|
||||
cut. `v4/tests/test_host_depth.c`, a path "AWAIT ended by a GONE that
|
||||
is handed on": works to 26 values and 21 calls deep, then a stack
|
||||
error and nothing else, at both widths.
|
||||
- *Found by the depth sweep, and mended:* the hook was jumped to, and a
|
||||
hook that sent a message about another node overwrote `(ONE)`, which
|
||||
`AWAIT` reads after believing a GONE: the wait went on. Shown to fail
|
||||
with the old `(DOWN)`.
|
||||
- *Traced, not a defect:* Hera's `(LOST)` is 2 after the kill tests of
|
||||
step 6c -- the two texts nodes 11 and 12 send the removed node 14,
|
||||
which she has no way to: let go, counted, and refused back to their
|
||||
senders (7d.4).
|
||||
- *Verified.* `make -C v4 test test-32 sanitize hosted-check`;
|
||||
`mkcapsule --lint capsules/`; three bare-metal boots,
|
||||
`logs/20261016-144519` (amd64), `-144811` (aarch64), `-145220`
|
||||
(riscv64): POST 538 of 538, `word_count=318`,
|
||||
`dict_hash=0x248b4edc47f4357e` on all six systems (the system changed,
|
||||
so the hash did); `make -C v4 test-32`, 0 failures.
|
||||
8. **The hosted product is the five nodes**, on three ISAs: acceptance 1
|
||||
to 5.
|
||||
9. **The same on bare metal:** acceptance 6.
|
||||
|
||||
Reference in New Issue
Block a user