2.6 KiB
2.6 KiB
Birthing — Kernel QEMU Acceptance Test Summary
Date: 2026-05-27
Branch: birthing
Feature: Lifecycle words (BIRTH KILL START STOP USE) + ." compile-mode fix
Scope
These logs cover the kernel UEFI build (make -f Makefile.starkernel ARCH=<arch> clean qemu).
All three architectures booted to ok>, ran POST, and executed capsules/init.4th successfully.
Kernel QEMU Results
| Arch | Tests | Passed | Failed | Errors | BIRTH Hermes | BIRTH Artemis | ." |
|---|---|---|---|---|---|---|---|
| amd64 | 800 | 734 | 0 | 0 | [Hermes] Hermes Up / live |
[Artemis] Artimis Up / live |
PASS |
| aarch64 | 800 | 734 | 0 | 0 | [Hermes] Hermes Up / live |
[Artemis] Artimis Up / live |
PASS |
| riscv64 | 800 | 734 | 0 | 0 | [Hermes] Hermes Up / live |
[Artemis] Artimis Up / live |
PASS |
Key Evidence (all three architectures identical)
[Hera] POST: PASSED
[Hera] Init: loading init.4th...
[Hermes] Hermes UpBIRTH: Hermes live
[Artemis] Artimis UpBIRTH: Artemis live
[Hera] Init: init.4th OK
." in compile mode now uses the (do-string) inline runtime — string bytes live
inside the threaded code body, not at body_addr. The previous LIT-addr-LIT-len-TYPE
approach overwrote the start of the word body with string bytes, causing a triple fault
when execute_colon_word read them as DictEntry pointers.
What Changed
src/word_source/io_words.c—."compile mode replaced with(do-string)inline approach;(do-string)runtime word reads inline string via return-stack IP, prints, advances IP past padded blocksrc/starkernel/capsule/mama_forth_words.c— BIRTH KILL START STOP USE kernel implementations; fixed caddr+1 offset bug to align with FORTH-79 S"src/word_source/string_words.c— S" fixed to FORTH-79 standard ( -- c-addr u )src/word_source/lifecycle_words_hosted.c— hosted Linux stubs (guarded #ifndef STARKERNEL)src/main.c— register_lifecycle_words(&vm) wired in for hosted buildcapsules/init.4th— S" Hermes" BIRTH + S" Artemis" BIRTHcapsules/hermes/init.4th— stub:: UP ." Hermes Up" ; UPcapsules/artemis/init.4th— stub:: UP ." Artimis Up" ; UP
Serial Logs
| Arch | Log file |
|---|---|
| amd64 | logs/qemu-amd64-20260526-234957.log |
| aarch64 | logs/qemu-aarch64-20260526-235056.log |
| riscv64 | logs/qemu-riscv64-20260527-000127.log |
(logs/ is gitignored — run locally to reproduce)
Remaining Interactive Tests (require Captain Bob)
S" Hermes" USE— switches system console to HermesS" Hera" USE— switches back- KILL + re-BIRTH a VM in the same session