# src/ Hosted StarForth VM implementation (compiled by the root `Makefile`). Bare-metal kernel sources live in `src/starkernel/`; FORTH word implementations in `src/word_source/`; the test harness in `src/test_runner/`; platform shims in `src/platform/`. **Entry point / interpreter core** - `main.c` — CLI entry point, VM init, DoE mode dispatch. - `vm.c` — interpreter loop, stacks, dictionary state (the central runtime file). - `vm_api.c` — external VM API implementation. - `vm_bootstrap.c` — VM bootstrap initialization. - `vm_debug.c` — debugging utilities. - `vm_time.c` — time-related VM operations. - `vm_internal.h` — internal-only declarations shared across the `vm_*.c` files, not part of the public `include/vm_api.h` surface. - `repl.c` — REPL read-eval-print loop. - `cli.c` — CLI argument parsing. - `io.c` — I/O operations. - `log.c` — logging infrastructure. **Memory / dictionary / blocks** - `memory_management.c` — dictionary allocator. - `dictionary_management.c` — dictionary allocation and search. - `dictionary_heat_optimization.c` — Loop #1 execution-heat tracking. - `word_registry.c` — word registration system. - `block_subsystem.c` — logical→physical block mapper. - `blkio_file.c`, `blkio_ram.c`, `blkio_factory.c` — block I/O backends (file-backed, RAM-backed) and the factory that selects between them. - `stack_management.c` — stack operations. **Physics-driven adaptive runtime (7 feedback loops)** - `physics_runtime.c` — main physics coordinator. - `physics_hotwords_cache.c` — Loop #1 hot-words caching. - `physics_metadata.c` — per-word metadata tracking. - `physics_pipelining_metrics.c` — Loop #4 word-transition prediction. - `physics_execution_hooks.c` — execution instrumentation. - `rolling_window_of_truth.c` — Loop #2 circular execution-history buffer. - `inference_engine.c` — Loops #5/#6, statistical inference (window-width, decay-slope). - `ssm_jacquard.c` — L8 Jacquard steady-state mode selector; consumes `compudynamics.c` for tuning-word/config lookups. - `compudynamics.c` — generic compudynamics module (`cd_tuning_word()`, `cd_tuning_vm()`); the score/UCB/reward/weight constants for the L8 adaptive table live here, not in `ssm_jacquard.c`. - `heartbeat_export.c` — heartbeat metrics export (CSV export function itself not yet implemented — see `docs/working/architecture/heartbeat_csv_export.md`). **Math / measurement** - `math_portable.c` — portable math functions. - `profiler.c` — performance profiling. - `doe_metrics.c` — Design of Experiments metrics (2^7 factorial). Any `.bak` file alongside a `.c` file here (`doe_metrics.c.bak`, `inference_engine.c.bak`, `vm.c.bak`) is a pre-edit backup left by a past maintenance script (see `scripts/remove_loop_conditionals.sh`), not a build input.