ModuLisp/ALIGNMENT.md

1.8 KiB

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.