2.5 KiB
2.5 KiB
MAP — ModuLisp repo inventory
modulisp/
├── meson.build # project root: useq_utils → useq_devtools → useq_signal_engine static libs
├── library.properties # Arduino library manifest (ModuLisp 0.1.0, includes=src/signal_engine/signal_engine.h)
├── src/
│ ├── pch.h # precompiled header (std includes)
│ ├── modulisp/
│ │ └── lisp/symbol_intern.h # header-only symbol interning table
│ ├── signal_engine/ # 11 .cpp + 12 .h + symbols.def
│ │ ├── token.{h,cpp} # tokenizer
│ │ ├── cell_store.{h,cpp} # S-expression cell arena
│ │ ├── node_pool.{h,cpp} # fixed-pool DAG node storage + traversal
│ │ ├── graph_builder.{h,cpp} # cell graph → node DAG compiler
│ │ ├── compiler_pipeline.{h,cpp} # source → tokens → cells → DAG orchestration
│ │ ├── cold_eval.{h,cpp} + eval_ops.h # constant folding / cold evaluation
│ │ ├── executor.{h,cpp} # tick-time DAG executor
│ │ ├── state_registry.{h,cpp} # defstate slots, live-edit slots
│ │ ├── synth_registry.{h,cpp} # synth graph snapshot registry
│ │ ├── synth_graph.{h,cpp} # serialisable synth artefact graph
│ │ ├── diagnostics.{h,cpp} # health/persistent-output diagnostics
│ │ ├── signal_engine.h # umbrella header
│ │ ├── types.h, build_profile.h # shared types, build tuning knobs
│ │ └── symbols.def # builtin symbol catalogue (X-macro list)
│ ├── utils/ # string.{h,cpp}, common.{h,cpp}, itoa.{h,cpp}, log.{h,cpp},
│ │ # json_builder.h, json_cursor.h, dtostrf.h, serial_message.h,
│ │ # time.h, compiler_config.h
│ ├── devtools/ # devtools.{h,cpp} — USEQ_DEVTOOLS-gated telemetry
│ └── ports/ # IStorage.h, II2CTransport.h, mocks/{MockStorage.h,MockI2CBus.h}
└── test/
├── meson.build # 17 Catch2 executables, fresh file
├── catch.hpp # vendored Catch2 v2 (from src-useq/test/catch.hpp)
└── signal_engine/ # 17 test .cpp (host-only subset; exclusions in README.md)
Build artifacts: build/ (meson/ninja). 3 libs + 17 test executables.