- MAX_DICT_ENTRIES (2048) removed: the entry list is allocated to the dictionary's size; a cyclic chain is detected (Floyd) instead of capped. - Colon-body walk bounded by vm->here, not a 1024-cell cap. - Every failure prints PARITY:INCOMPLETE #n with its full reason, logs at LOG_ERROR, bumps sk_parity_incomplete_count(), and the record reads hash=INCOMPLETE / PARITY:FAIL code=4 rather than a plausible hash. - Pre-existing #GP fixed: the walker dereferenced inline body data (S" bytes, offsets); it now follows only known dictionary entries. - LIT operands that are entry pointers are hashed by word_id, not address, so a mature dictionary hashes identically across ISAs. Probe (reverted): 563 -> 2563 words hashed, identical on amd64/aarch64/ riscv64; cyclic chain -> INCOMPLETE, counter 2. Boot parity unchanged (531, 0x572daac83b797332). 3-ISA acceptance passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
include/starkernel/vm/
Headers for the kernel-side VM subsystem (src/starkernel/vm/).
arena.h— the capsule arena allocator: fixed-region allocation for capsule payload data, separate fromkmalloc's general kernel heap.parity.h— the birth/execution parity-record logger: declares the logging interface used to record VM ID, capsule content hash, and dictionary hash on every capsule birth, enabling offline determinism verification across independent kernel runs.
See include/starkernel/vm/bootstrap/README.md for the VM bootstrap
subsystem.