feat(kernel): Hera in the kernel's fabric and registry; centre.4th and hera.4th on her
#189, ENGINE step 4 Phase 1, Task 5a. Captain Bob, 2026-11-13: "Full births now"; "Hera as now, in a fabric". - sk_v4.c: the kernel's fabric (v4/fabric.h), Hera's node at its one place, entered in its registry (v4/manage.h) as node 10. The registry's answers are real: a birth is "no room" -- the fabric has one place until 5b; CAPSULE-OPEN/-LINE read the kernel's capsule directory, checked as the boot checks (no capsule of F18 code is there until 5b); a born node's parity line. She is not told her number: the boot's console addresses node 0 (told 10, the boot stopped after POST -- kept, labelled, logs/20261113-132712). - boot.h/boot.c: v4_boot's `request` hook (the registry's requests) and `capsules` (the kernel's own, loaded before the seal, so POST runs on them). hosted.c sets neither: the hosted product's boot is as it was. - kernel/Makefile: manage.c in the kernel's v4 engine. - qemu_session.py: a v4 acceptance boot asks NODE-ME . and wants 0. - v4-dictionary.tsv: the 55 words of centre.4th and hera.4th, written from their source and manage.h; mkdictionary.py loads the kernel's capsules into the hosted system before WORDS, so the live list is the kernel's -- 375 words. - .claude/memory/rules.md, rule 6: every boot command under timeout 570. Seen to fail first (logs/20261113-132410): NODE-ME was an unknown word. After: amd64 NODE-ME . gives 0 ok; POST 539/539; word_count 375. v4 suite: test, test-32 99 programs 0 failures; v4-checks 79 under the sanitizers 0 failures, the hosted builds alike. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017RzZgrf7V7Zk2iczBXDRbm
This commit is contained in:
@@ -487,6 +487,16 @@ def physics():
|
||||
check("the heartbeat: ticking", wait_for(r"Heartbeat: [1-9]\d* ticks", 120))
|
||||
|
||||
|
||||
def registry():
|
||||
"""Hera in the kernel's fabric and registry (#189, Phase 1 Task 5a): NODE-ME, made by centre.4th,
|
||||
is answered by the kernel with her place, 0 -- as the host mesh answers it (test_host_unit.c)."""
|
||||
n = count(PROMPT)
|
||||
type_line("NODE-ME .")
|
||||
check("NODE-ME: Hera is at place 0 of the kernel's fabric",
|
||||
wait_for(PROMPT, 60, n) and re.search(r"(?:^|[^0-9])0\s+ok", text()[-200:]) is not None
|
||||
and "UNKNOWN WORD" not in text()[-200:])
|
||||
|
||||
|
||||
check("POST: PASSED", wait_for(r"POST: PASSED", 900))
|
||||
m = a.mode
|
||||
|
||||
@@ -503,6 +513,7 @@ elif m == "zuse":
|
||||
n = count(PROMPT)
|
||||
type_line("3 4 + .")
|
||||
check("7 ok, and a prompt", wait_for(PROMPT, 60, n) and re.search(r"7\s+ok", text()) is not None)
|
||||
registry()
|
||||
|
||||
elif m in ("stick_boot", "two_sticks"):
|
||||
def disks():
|
||||
@@ -575,6 +586,7 @@ elif m in ("genesis", "stick_genesis"):
|
||||
n = count(PROMPT)
|
||||
type_line("3 4 + .")
|
||||
check("7 ok", wait_for(PROMPT, 60, n) and re.search(r"7\s+ok", text()[-400:]) is not None)
|
||||
registry()
|
||||
check("no fault", count(r"EXCEPTION|PANIC|panic") == 0)
|
||||
if m == "genesis":
|
||||
shutdown()
|
||||
|
||||
Reference in New Issue
Block a user