Skip to content

Port Autumn.wasm refactor from MARA monorepo#1

Merged
datvo06 merged 1 commit intomainfrom
port-from-mara-wasm
May 6, 2026
Merged

Port Autumn.wasm refactor from MARA monorepo#1
datvo06 merged 1 commit intomainfrom
port-from-mara-wasm

Conversation

@yiyunliu
Copy link
Copy Markdown
Contributor

@yiyunliu yiyunliu commented May 6, 2026

Brings the standalone Autumn.cpp tree in line with the version vendored at MARA/MARA/domains/autumnbench/Autumn.wasm/. Largest change is the AST refactor: Expr/Stmt now use direct eval(Interpreter&)/exec(Interpreter&) methods instead of the visitor pattern, and identifiers are interned through Autumn::Interner (Symbol = const std::string*) for fast equality and stable iteration. Adds new src/interpreter/ExprMethods.cpp and include/interpreter/Interner.hpp.

Build/packaging updates:

  • CMakeLists.txt: C++20, scikit-build-core/pybind11 wheel layout (installs to MARA/autumn_cpp/), in-tree .venv auto-detection
  • pyproject.toml: cibuildwheel matrix for cp312/313/314 across manylinux x86_64+aarch64 and macosx x86_64+arm64
  • .github/workflows/build.yml: build_wheels (4-OS matrix), build_wasm (emcmake), tag-triggered release
  • README rewritten around uv + cmake + wheel install + WASM

Cleanup of dead/redundant files:

  • include/static_analyzer/ (never used, broken visitor sketch)
  • testInterpreters/ (broken demos, never wired to ctest)
  • Makefile (subsumed by CMakeLists)
  • environment.yml, requirements.txt (subsumed by pyproject.toml)
  • python_test.py (arcade-only, can't run headless)

New sexp programs from MARA were intentionally NOT brought over.

Brings the standalone Autumn.cpp tree in line with the version vendored at
MARA/MARA/domains/autumnbench/Autumn.wasm/. Largest change is the AST
refactor: Expr/Stmt now use direct eval(Interpreter&)/exec(Interpreter&)
methods instead of the visitor pattern, and identifiers are interned
through Autumn::Interner (Symbol = const std::string*) for fast equality
and stable iteration. Adds new src/interpreter/ExprMethods.cpp and
include/interpreter/Interner.hpp.

Build/packaging updates:
- CMakeLists.txt: C++20, scikit-build-core/pybind11 wheel layout
  (installs to MARA/autumn_cpp/), in-tree .venv auto-detection
- pyproject.toml: cibuildwheel matrix for cp312/313/314 across
  manylinux x86_64+aarch64 and macosx x86_64+arm64
- .github/workflows/build.yml: build_wheels (4-OS matrix),
  build_wasm (emcmake), tag-triggered release
- README rewritten around uv + cmake + wheel install + WASM

Cleanup of dead/redundant files:
- include/static_analyzer/ (never used, broken visitor sketch)
- testInterpreters/ (broken demos, never wired to ctest)
- Makefile (subsumed by CMakeLists)
- environment.yml, requirements.txt (subsumed by pyproject.toml)
- python_test.py (arcade-only, can't run headless)

New sexp programs from MARA were intentionally NOT brought over.
@yiyunliu
Copy link
Copy Markdown
Contributor Author

yiyunliu commented May 6, 2026

Once this gets merged, we need to remember to update the wiki page.

@yiyunliu yiyunliu requested a review from datvo06 May 6, 2026 02:53
@datvo06 datvo06 merged commit 4da9719 into main May 6, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants