27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# 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.
|