# ModuLisp Standalone build of the portable uSEQ signal engine. Meson + ninja: ``` meson setup build && ninja -C build && meson test -C build ``` ## Module map - `src/modulisp/lisp/` — header-only symbol interning (`symbol_intern.h`). - `src/signal_engine/` — the language core: - `token` → `cell_store` → `graph_builder` → `node_pool`: source text to fixed-pool signal DAG (deterministic compile, CSE, bounded diagnostics). - `compiler_pipeline`: parse + graph-mutation transactions (LKG rollback). - `cold_eval`: top-level evaluation — definitions, output assignment, external sink assignment, cold commands, transport control. - `executor`: tick-time DAG execution + `publish_sink_values`. - `ext_registry`: generic named external-input / external-sink / cold-command registries — the firmware-profile seam (see MAP.md). - `state_registry`, `synth_registry`, `synth_graph`, `diagnostics`. - `src/utils/`, `src/devtools/`, `src/ports/` — support libraries, gated telemetry, and hardware port interfaces with host mocks. - `test/` — Catch2 executables over the host subset of the engine. External registers are generic: firmware registers names like `nn/*` or `midi/*` at boot; the engine ships no such builtins.