feat(v4): a believed GONE is handed to the word in (GONE-HOOK) (MESH.md 9a)
COLD takes out a hook it forgets. The system changed, so dict_hash did: hosted, all three ISAs, word_count=318 dict_hash=0x1b5c633fd6bdd143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d154342314
commit
450dea9c24
@@ -1096,6 +1096,26 @@ int main(void)
|
||||
CHECK(undone == 0 && wrong == 0, "whenever the room came, both texts were done, the first first: %u not done, %u in the wrong order, the first when it came at step %u", undone, wrong, first_wrong);
|
||||
}
|
||||
|
||||
/* ---- A BELIEVED GONE IS HANDED ON (MESH.md 9a.2, ruling 7; 9a.3) ----
|
||||
* The word in (GONE-HOOK) is given the number of the node that is gone, each time a GONE is believed:
|
||||
* centre.4th puts GONE-DOWN there, which tells the nodes the node birthed. Here node 11 has a word that
|
||||
* tells node 12; node 12 believes it, since node 11 is its centre, and forgets its way to 44. */
|
||||
CHECK(row() && told(12, "44 2 ROUTE") && told(11, "44 3 ROUTE"), "a row; nodes 11 and 12 each know a way to 44");
|
||||
{
|
||||
v4_cell ways11 = pool[mid].n.mem[ROUTE_COUNT], ways12 = pool[far].n.mem[ROUTE_COUNT];
|
||||
CHECK(told(10, "44 11 GONE") && pool[mid].n.mem[ROUTE_COUNT] == ways11 - 1 && pool[far].n.mem[ROUTE_COUNT] == ways12 && asleep(far),
|
||||
"with nothing in (GONE-HOOK) node 11 believes a GONE from its centre and tells no one");
|
||||
CHECK(told(11, "44 3 ROUTE : DOWN 12 GONE ; ' DOWN (GONE-HOOK) !"), "node 11 is given a word to hand a GONE on with");
|
||||
CHECK(told(10, "44 11 GONE") && pool[mid].n.mem[ROUTE_COUNT] == ways11 - 1 && pool[far].n.mem[ROUTE_COUNT] == ways12 - 1 && asleep(far) && asleep(mid),
|
||||
"now node 11 believes it and hands it on: node 12 believes it from its centre and forgets 44 too");
|
||||
CHECK(told(12, "44 2 ROUTE") && told(11, "44 3 ROUTE") && told(12, "44 12 GONE") && pool[mid].n.mem[ROUTE_COUNT] == ways11,
|
||||
"a GONE that is not believed -- node 12 is not node 11's centre -- is not handed on");
|
||||
CHECK(v4_fabric_wire_kernel(&f, mid, 0, &kernel_dev), "a kernel on node 11's port 0, for COLD's EMPTY-BUFFERS");
|
||||
CHECK(strstr(tell(11, "COLD"), "Cold Start") != NULL && strcmp(tell(11, "(GONE-HOOK) @ ."), "0 ") == 0,
|
||||
"COLD forgets DOWN, so (GONE-HOOK) no longer points at it: \"%s\"", printed);
|
||||
CHECK(strcmp(tell(10, "1 2 + ."), "3 ") == 0 && strcmp(tell(11, "1 2 + ."), "3 ") == 0 && strcmp(tell(12, "1 2 + ."), "3 ") == 0, "and every node answers");
|
||||
}
|
||||
|
||||
/* ---- A NODE REMOVED, OR A WIRE CUT, AT EVERY STEP (MESH.md 7d.7, acceptance 6) ----
|
||||
* Three exchanges, each played once whole and then once for every step it takes with node 11 removed at
|
||||
* that step, again with node 12 removed, and again with the wire between them cut and made again: the
|
||||
|
||||
Reference in New Issue
Block a user