- The static sk_hermes_msgs[32] is replaced by a directory of fixed-size segments (SK_HERMES_ARENA_SEGMENT, growth granularity only). Messages never move -- callers, including the drain across vm_interpret_kind(), hold message pointers across later allocations, so copy-on-grow (as §7.0 first proposed) would dangle them. Each message carries its index; numbering unchanged. - Pending-queue rings and channel member lists heap-grown (doubling); member lists freed on destroy; reassembly scratch sized per call. SK_HERMES_MSG_MAX / _PENDING_MAX / _MEMBER_MAX are gone. - Q_SLOT = Q48_ONE / 32 as its own constant (M-0b), value unchanged. - Every grow failure is printed, logged at LOG_ERROR, counted (sk_hermes_grow_failures()) and refused whole; a send whose queue can't grow releases its message. Probe (reverted), identical on amd64/aarch64/riscv64: 70 messages in one queue (arena 32 -> 96), sender refused by its reservoir, 72 popped intact in order, 100 members; a live Hera drain on a full arena grew it mid-drain and released/popped the right message; each grow path's injected failure refused whole and counted. 3-ISA acceptance passes; boot parity, dict_hash set and the live ledger line byte-identical to before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
experiments/
Design of Experiments (DoE) campaign data and analysis for the LithosAnanke kernel.
bare_metal/— the bare-metal DoE experiment: blind full-factorial 2⁴ runs measuring the L8 Jacquard mode selector's effect on the Steady-State Machine across amd64/aarch64/riscv64. Seeexperiments/bare_metal/README.mdfor the full directory layout (runs/,latest/,analysis/{charts,tables,report}).
Hosted-VM DoE campaigns (factorial/heartbeat/ablation studies) live under
docs/working/experiments/ instead — this top-level directory is
specifically the kernel/bare-metal side.