fix(v4.0.0): 29 values left on the stack hung the node; and what the review of step 6d found

The review of step 6d found it not sound.  Mended here, with a check
that failed first: a text that left 29 values on the stack hung the
node for ever, on the products too -- the passes over the messages
waiting that follow every text need four cells, and a stack fault in the
middle of one left the messages in pieces.  Such a text ends 'Stack
overflow', as before step 6d.  hosted-check types it.

The other findings are open and are written under step 6d in MESH.md
section 10; the README no longer says the aim is met.

make -C v4 test and sanitize at both widths, hosted-check.  The bare
metal boots have not been made again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rajames
2026-10-08 01:59:28 -04:00
co-authored by Claude Opus 5.5
parent 2b587206ee
commit 380f1cc6ec
6 changed files with 59 additions and 3 deletions
+31
View File
@@ -1256,6 +1256,37 @@ Each is tested, committed and pushed before the next.
`hosted-check`, lint; three bare-metal boots, `logs/20261008-011558`
(amd64), `-011833` (aarch64), `-012159` (riscv64). On all six: POST
538 of 538, `word_count=317`, `dict_hash=0x6a39c0bb9d183418`.
- **The review (2026-10-08) found the step not sound as built.** One
finding is mended, the rest are open and the claims of 7b and 7c that
"a stuck node holds up no other" are not yet true in the cases below.
- *Mended.* A line that left 29 values on the stack hung the node for
ever, on the products too: the passes over the messages waiting
that now follow every text need four cells, and a stack fault in
the middle of one left the messages in pieces. Such a text now
ends "Stack overflow", as it did before step 6d
(`test_host_quit.c`; `hosted-check`). The boots above were made
before this and do not show it.
- *Open: a node removed while a message is being passed on to it*
leaves the node passing it on going round for ever: the error
comes in the middle of writing the message out of the messages
waiting, and leaves them in pieces.
- *Open: offers left standing.* When a node lets a message go and
then begins text without having slept, what it had offered is
still offered, and the text's own message can go to the wrong
port. The review saw text meant for one node done by another.
- *Open: what a finished text printed* is still begun as a message
from text is, and if the way to the console is through a stuck
node the node is held and cannot be typed to.
- *Open: with more than eight messages of its own waiting* (answers,
or the GONEs of `KILL`) a node begins no text at all; on Hera that
cannot be undone from the console.
- *Open, smaller:* an error while a refusal is being written leaves
a value on the stack; with no room at all, how text ended is
begun as a message and can be held by a stuck sender; a line that
was itself refused for want of room can still end a waiting text
"Interrupted"; a message a node makes itself may be passed on by
15 nodes, not 16; the flood's figures in 7a are stale (278 arrive
now) and `(LOST)` counts some messages more than once.
7. **A second unit; scaling while running; sleep, wake and kill by
command.**