Maestro

Maestro is an embedded, Lisp-like state-machine language with a packed linked artifact format and a small C runtime. Surface language semantics are defined in docs/design/language-specs.md.

Docs

Build

Primary build targets:

  • make runtime
  • make tools
  • make examples
  • make test
  • make test-mstr
  • make test-deep

Everything is built into build/.

Typical Flow

Build the toolchain and example bundles:

make tools
make examples

Inspect required external function bindings in a bundle:

build/maestroexts build/examples/external.mstro

Compile, load, and run a module through the runtime driver:

build/maestrovm -d examples/modules -r "app caller" ""

Run categorized source-program tests:

make test-mstr
python3 tests/run_tests.py "tests modules caller"

Run deeper integration and bundle tests:

make test-deep
python3 tests/run_tests.py --deep "tests bundles alpha"

Embedding

For embedded use, build the runtime library with make runtime, load .mstro artifacts through the runtime API, and include include/maestro/maestro.h as the canonical public entry point.

For .so-based extension loading, see docs/extension-guide.md. For runtime driver behavior, see docs/tools/maestrovm.md.

Description
A embedded, Lisp-like state-machine language with a small C runtime.
Readme MIT 650 KiB
Languages
C 92.9%
Python 5.5%
Makefile 1.6%