36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# ALIGNMENT — ModuLisp standalone repo
|
|
|
|
## Mission
|
|
|
|
Give the ModuLisp engine — the portable language + DAG signal-engine core of
|
|
uSEQ — its own repository so it can evolve and be tested independently of the
|
|
firmware, and be consumed two ways:
|
|
|
|
1. **Host builds** (`meson setup build && ninja -C build && meson test -C
|
|
build`) — the unit-test surface for engine work.
|
|
2. **Arduino library** (via `library.properties`) — included by the RP2350
|
|
uSEQ firmware.
|
|
|
|
The uSEQ tree remains the system of record for the full product; this repo is
|
|
the engine core only. Divergence policy: changes land here first (with tests),
|
|
and the uSEQ firmware updates its consumption, not the other way round — until
|
|
uSEQ's own copy is retired.
|
|
|
|
## Open questions
|
|
|
|
1. **License.** The uSEQ tree carries `license/cern_ohl_s_v2.txt` (a hardware
|
|
license, wrong fit for C++ sources). No software license has been chosen for
|
|
this extracted engine; nothing here is licensed for redistribution yet.
|
|
2. **Test exclusions.** `test_flash_storage.cpp`, `test_wasm_wrapper_projection.cpp`,
|
|
and `test_osc_sine_nodedef.cpp` stay behind in uSEQ because they link the
|
|
firmware, wasm, and nodedef modules respectively (details in README.md). If
|
|
those modules are ever extracted, their tests should follow.
|
|
3. **Upstream sync.** This extraction was a one-time copy of the working tree
|
|
at src-useq git `1081ae8` (2026-08-17). There is no automation keeping this
|
|
repo in sync with later uSEQ engine changes; the first divergence will need
|
|
a cherry-pick/replay decision.
|
|
4. **`modulisp/` crate is a stub.** Only `modulisp/lisp/symbol_intern.h` lives
|
|
there today. The expected growth path is that language-level machinery
|
|
moves out of `signal_engine/` into `modulisp/` over time; the sibling
|
|
directory layout under `src/` exists to keep relative includes stable while
|
|
that happens.
|