feat(v4.0.0): refusals and waits on bare metal, and step 6c written up

The bare-metal host hands a waiting node the next line typed, as the
hosted one does: 5 AWAIT, then 7 8 * . -- Interrupted, then 56.

amd64, aarch64 and riscv64 boot, POST 538 of 538, word_count=317,
dict_hash 0x54520ade672566ad, the same as the three hosted programs:
logs/20261007-202737, -203230, -203616.

MESH.md step 6c: what was built, how it was verified, and two things
found on the way that are not mended and are for ruling: Hera blocked
writing to a stuck node, and a message that can go round for ever between
two nodes whose ways disagree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rajames
2026-10-07 20:38:20 -04:00
co-authored by Claude Opus 5.5
parent ee2bbf4ecf
commit d343001dea
7 changed files with 575 additions and 12 deletions
+11
View File
@@ -114,6 +114,17 @@ void sk_v4_run(void (*chain)(void))
console_puts("ok> ");
len = sk_v4_readline();
how = v4_boot_line(&boot, sk_v4_text, len);
/* The line is waiting for an answer no one here can send. The next
* line typed breaks the wait: the line that was waiting ends in an
* error, and then the line just typed is done (v4/boot.h). */
while (how == V4_BOOT_LINE_WAITING) {
len = sk_v4_readline();
how = v4_boot_line(&boot, sk_v4_text, len);
if (how == V4_TEXT_ERROR) console_puts(" ERROR\nok> ");
else if (how == V4_TEXT_COMPLETED) console_puts(" ok\nok> ");
else break;
how = v4_boot_line(&boot, 0, 0);
}
if (how == V4_TEXT_COMPLETED) console_puts(" ok\n");
else if (how == V4_TEXT_ERROR) console_puts(" ERROR\n");
else if (how == V4_BOOT_LINE_STOPPED) {