Files
LithosAnanake/Kconfig.kernel
T
Robert Allan JamesandClaude Sonnet 5 1b2f0677de starkernel: item 3.1 reopened -- two Kconfig symbols items 1.1/1.4 deferred here
Punch list §25 item 3.1 re-closed after reopening.

Items 1.1 and 1.4's resolutions both explicitly named this item as
where their Kconfig symbols would be implemented, but 3.1's own stated
scope never mentioned them, so the first close missed both:

- STADIUM_CONTAINS_DEPTH_MAX (default 5) -- item 1.1's contains-chain
  depth cap. No consumer yet; reap-gating enforcement is item 3.5.
- STADIUM_CAPACITY_TICK (default 1000) -- item 1.4's capacity
  arbitration cadence in virtual ticks. No consumer yet; capacity
  arbitration itself is not on the punch list.

Both added following STADIUM_MAX_VM_COUNT's exact pattern:
Kconfig.kernel entry, Makefile.starkernel kconfig_int +
VM_FEATURE_FLAG_VARS forwarding, starforth_config.h fallback default.
stadium.h now includes starforth_config.h and carries two more
C99-portable compile-time checks proving both symbols are defined and
sane, same discipline as the byte-count checks. Declaration only --
not inventing the consuming logic to close this out early.

Verified: three-architecture boot (amd64, aarch64, riscv64), all
reaching ok> with identical dict_hash=0x3d4e1daf289da94f, re-run after
the reopening.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 15:15:59 -04:00

85 lines
3.3 KiB
Plaintext

menu "Kernel-only options"
if STARFORTH_VARIANT_KERNEL
config STARFORTH_ENABLE_VM
bool "Enable StarForth VM integration, M7 milestone (STARFORTH_ENABLE_VM)"
default y
help
Compiles the full StarForth VM source tree into the kernel image
and enables capsule birth/execution. Disabling this builds a
kernel that only reaches the M0-M6 hardware milestones (console,
PMM, VMM, interrupts, timers, kmalloc) with no FORTH interpreter,
no capsules, no "ok" REPL. Gates a large source-file selection
block in Makefile.starkernel, not just a handful of -D flags.
config PARITY_MODE
bool "Deterministic parity harness mode (PARITY_MODE)"
default n
help
Enables the parity/determinism verification harness used to
compare dict_hash and capsule state across independent runs.
Off by default (normal boot); on for parity-campaign builds.
config SK_PARITY_DEBUG
bool "Verbose parity/vocabulary debug logging (SK_PARITY_DEBUG)"
default n
help
Extra diagnostic logging in vocabulary_words.c and
vm_bootstrap.c's parity paths (src/starkernel/vm/vm_internal.h
guards these with #if defined(__STARKERNEL__) && SK_PARITY_DEBUG).
Previously opt-in-only via VM_FEATURE_FLAG_VARS with no Kconfig
presence at all; promoted here for discoverability, same
treatment as every other previously-unwired constant in this
migration.
config HEARTBEAT_DOE_LOG
bool "Per-tick heartbeat DoE logging (HEARTBEAT_DOE_LOG)"
default y
help
Emits per-heartbeat-tick DoE observation records used by the
bare-metal Design-of-Experiments campaigns
(experiments/bare_metal/). On by default; the DoE tooling expects
this log to be present.
config STADIUM_MAX_VM_COUNT
int "Outer Stadium VM population bound (STADIUM_MAX_VM_COUNT)"
default 4
help
Hard bound on live VMs in the outer Stadium (FABRIC.md item 1.5).
Birth is refused once this many VMs are LIVE simultaneously; a
dead or stillborn VM's registry slot does not count against the
bound. Default of 4 matches Tripod's currently-known topology
(Hera + two Hermes instances + Artemis) -- an explicit placeholder
pending a DoE campaign to find an idealized default (item 5.1),
not a padded estimate.
config STADIUM_CONTAINS_DEPTH_MAX
int "Patron containment chain depth cap (STADIUM_CONTAINS_DEPTH_MAX)"
default 5
help
Hard bound on how many patrons deep a `contains` chain (FABRIC.md
item 1.1, the ninth cell wire) may nest. A patron with a non-none
`contains` link cannot be reaped -- reap-gating enforcement of
this bound is item 3.5's scope, not yet implemented. Distinct
from the already-implemented VM-Stadium nesting depth (item 1.7,
default 2): that bounds VMs nested inside VMs, this bounds
patrons held inside patrons within one Stadium.
config STADIUM_CAPACITY_TICK
int "Capacity arbitration cadence, in virtual ticks (STADIUM_CAPACITY_TICK)"
default 1000
help
How often Hera re-evaluates capacity transfers between VMs
(FABRIC.md item 1.4), expressed in virtual ticks -- never
wall-clock. Default matches the existing precedent at
capsule_vm_physics.c's vm_physics_heartbeat_tick()
(HEARTBEAT_INFERENCE_FREQUENCY, also 1000), comfortably past
the "order of magnitude apart from the heat tick" minimum
(FABRIC.md §22.4). No consumer yet -- capacity arbitration
itself is not yet on the punch list.
endif # STARFORTH_VARIANT_KERNEL
endmenu