feat(v4.0.0): a node looks before it writes; two neighbours no longer stop each other

MESH.md step 4, the fault found there, as ruled (section 7a): a node
writes only to a neighbour that is reading, keeps what it takes in
meanwhile, and loses and counts what it has no room for.

Engine: two more addresses after a node's ports -- which ports have a
neighbour waiting to write to it, which to read from it. Nucleus: (GATE)
before every message; the messages waiting, a ring of 400 cells, dealt
with when the node is idle. Of two neighbours the lower number may wait
to write (ruled after it was built); NEIGHBOUR tells a node who is on
each port.

test_host_mesh.c, 44 checks: the case that stopped the nodes passes; six
messages from each node to each at once all arrive; 800 at once, the
nodes come to rest and every message arrived or was counted (287 arrived,
714 of all kinds let go). test_fabric.c: the two looks. Both widths,
ASan+UBSan.

POST: twelve cases handed HERE, a cell address on v4, to words that take
a byte address, and so wrote into or read from the nucleus's code at cell
HERE/4. Ruled: left out, marked OPEN, until HERE and the byte words are
made to agree as its own step. POST is 538 cases.

hosted-check on three ISAs, 538/538. Bare metal: logs/20261006-134817
(amd64), -135044 (aarch64), -135440 (riscv64).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rajames
2026-10-06 13:56:57 -04:00
co-authored by Claude Opus 5.5
parent 630d03fa4e
commit f9c034cadd
21 changed files with 1015 additions and 308 deletions
+66 -66
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-10-06T15:58:11Z -->
<!-- Generated by mkcapsule --manifest 2026-10-06T17:54:02Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -30,7 +30,7 @@
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | n/a |
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | n/a |
| `v4:forth79.4th` | 6000, 6001, 6002 | `0x4055641ee17d176b` | n/a |
| `v4:post79.4th` | 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063 | `0xb987dbb4388990bd` | n/a |
| `v4:post79.4th` | 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063 | `0xb26d1b974884179d` | n/a |
| `workload-0.4th` | 2200, 2201 | `0x93f86f60aeba8feb` | n/a |
| `workload-1-lite.4th` | 5058, 5059 | `0x44a7a7e3176dcc8d` | n/a |
| `workload-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` | n/a |
@@ -371,70 +371,70 @@
| 6000 | `v4:forth79.4th` | `0x4055641ee17d176b` | ok |
| 6001 | `v4:forth79.4th` | `0x4055641ee17d176b` | ok |
| 6002 | `v4:forth79.4th` | `0x4055641ee17d176b` | ok |
| 7000 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7001 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7002 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7003 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7004 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7005 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7006 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7007 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7008 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7009 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7010 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7011 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7012 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7013 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7014 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7015 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7016 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7017 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7018 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7019 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7020 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7021 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7022 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7023 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7024 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7025 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7026 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7027 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7028 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7029 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7030 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7031 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7032 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7033 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7034 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7035 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7036 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7037 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7038 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7039 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7040 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7041 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7042 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7043 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7044 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7045 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7046 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7047 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7048 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7049 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7050 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7051 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7052 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7053 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7054 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7055 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7056 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7057 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7058 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7059 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7060 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7061 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7062 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7063 | `v4:post79.4th` | `0xb987dbb4388990bd` | ok |
| 7000 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7001 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7002 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7003 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7004 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7005 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7006 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7007 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7008 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7009 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7010 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7011 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7012 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7013 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7014 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7015 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7016 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7017 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7018 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7019 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7020 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7021 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7022 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7023 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7024 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7025 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7026 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7027 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7028 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7029 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7030 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7031 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7032 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7033 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7034 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7035 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7036 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7037 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7038 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7039 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7040 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7041 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7042 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7043 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7044 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7045 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7046 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7047 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7048 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7049 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7050 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7051 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7052 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7053 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7054 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7055 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7056 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7057 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7058 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7059 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7060 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7061 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7062 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
| 7063 | `v4:post79.4th` | `0xb26d1b974884179d` | ok |
## Conflicts
Binary file not shown.
+94 -132
View File
File diff suppressed because it is too large Load Diff