Development Roadmap
This document serves as the evolving roadmap for RunMat to track the progress of the project towards the 1.0 release.
The core language and runtime are complete. The major remaining items are:
- The GUI plotting backend has a few edges that need to be smoothed out.
- The package manager needs to be implemented.
- The JIT currently optimizes a subset of the language, with an interpreter fallback for operations that are currently not implemented in the JIT. Full JIT coverage will be implemented before the 1.0 release.
- Some of the built-in functions have partial implementations. We will take a full pass through the built-in functions to ensure they're a good minimal set, with full canonical behavior.
The below tracks the progress of the project towards the 1.0 release to date.
Milestone P0 - Bootstrapping
- Expand lexer to cover MATLAB operators, keywords and comments.
- Introduce
runmat-parser
crate producing an AST. - Basic
runmat-repl
that tokenizes input and prints tokens. - Set up CI with
cargo fmt
andcargo check
.
Milestone P1 - Language Core
- Complete parser with precedence rules and matrix syntax.
- Extend parser to support control flow, function definitions and array indexing so that typical MATLAB files can be parsed without errors.
- High-level IR (
runmat-hir
) with scope and type annotations. - Simple interpreter running on an unoptimised bytecode (
runmat-ignition
). - Headless plotting backend emitting SVG/PNG.
- Jupyter kernel communication skeleton.
Milestone P2 - Performance Features
- Cranelift-based JIT (
runmat-turbine
). - BLAS/LAPACK bindings and array primitives (
runmat-runtime
). - Generational GC with optional pointer compression (
runmat-gc
). - Snapshot creator to preload the standard library (
runmat-snapshot
). - v0.1 release.
Milestone P3 - User Experience
- Full language coverage (
docs/LANGUAGE_COVERAGE.md
). - v0.2 release.
- Finish plotting library integration.
- Full standard library pass for canonical built-ins.
- Implement package manager.
- Implement LSP server.
- Complete Accelerate (GPU) support.
- MEX/C API (
runmat-ffi
).