fix(v4.0.0): step 6e review round 2 -- only the message looked at is taken, moved or dropped; the kernel's port has no queue in a fabric; an answer nobody awaits is not a loss
- Engine: a wire keeps whether the message at its mark is the one last looked at; a node's take, move and drop of any other answer 3 and write nothing (MESH.md 7d.3). A wire cut and made again between a look and a take no longer has a NACK done as text, or 256 cells written where one was looked for. - Engine: v4_fabric_wire_kernel wires a kernel to a port with no queues; a message for it is refused at once, error 18, on a mesh as on the products. - The result of a drop is looked at; a take that does not take has the message dropped, or gone past: nothing goes round. - An answer nobody waits for is let go uncounted; (LOST) counts what should have been delivered or acted on and was not. The flood's account is exact. - Error 18 from under a word that was printing empties the data stack, as a fault does: that word's own values are not left there. - Tests: the take and drop windows cut at every step, with and without another message put; a refusal owed to a stuck node whose wire is full. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
6a7d0aa27f
commit
f1419e739c
+17
-3
@@ -800,6 +800,17 @@ the engine and happens whole.
|
||||
- Each wire has a mark for the node that reads it: the message that
|
||||
look, take, move and drop are about. First and next move it; with no
|
||||
message there, those four answer 3.
|
||||
- **Take, move and drop are done only on the message last looked at.**
|
||||
A node looks, decides, and then takes; the wire may have been cut and
|
||||
made again in between, and another message put where that one was. So
|
||||
the wire keeps whether the message at its mark is the one last looked
|
||||
at: a look that finds a message makes it so, and first, next, the
|
||||
message's going, and the cutting of the wire undo it. Take, move and
|
||||
drop of anything else answer 3 and change nothing, and a take writes
|
||||
the cells of the message looked at and no more. *(Added 2026-10-08, fix
|
||||
round 2 of tasks 2 and 3: a NACK was done as text, and a text of 1,024
|
||||
characters taken where a NACK had been looked at overwrote the node's
|
||||
variables.)*
|
||||
- Only 8 and 9 block. A node blocked there executes nothing.
|
||||
- **Sleep is woken by a message coming, not by one being there.** A node
|
||||
may leave a message for itself on a wire -- text it will not begin
|
||||
@@ -877,9 +888,12 @@ waiting, the words that turned it, the list of NACKs owed, and
|
||||
### 7d.5 The products
|
||||
|
||||
The lone node on the hosted and bare-metal products is given the same
|
||||
addresses by its host (`v4/system/boot.c`): its two wires are the
|
||||
console and the kernel. Nothing else changes for it: the kernel's
|
||||
requests stay a word at a time.
|
||||
addresses by its host (`v4/system/boot.c`): its one wire is the
|
||||
console's. **The kernel's port has no queue** *(ruled 2026-10-08)*, on
|
||||
the products and in a fabric (`v4_fabric_wire_kernel`): the kernel is
|
||||
asked by words written to its port, as before, and takes no messages. A
|
||||
message for that port is refused at once -- error 18, "No one on that
|
||||
port".
|
||||
|
||||
### 7d.6 What will be limits
|
||||
|
||||
|
||||
Reference in New Issue
Block a user