ModuLisp/ALIGNMENT.md

37 lines
1.8 KiB
Markdown
Raw Normal View History

# 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.