RunMat v0.5.0
v0.5.0 — June 3, 2026
Major compiler and runtime update adding a staged semantic pipeline, manifest-backed multi-file projects, expanded MATLAB language semantics, structured execution outcomes, and new runtime builtins. See the 0.5 release post and the compiler pipeline deep dive.
Added
- Add project composition with
runmat.tomlandrunmat.jsonmanifests for package metadata, source roots, local dependencies, named entrypoints, source-root discovery, package folders, class folders, and private helpers - Add source
classdefobjects with constructors, properties, methods, inheritance, access rules, value vs handle behavior, static members, super calls, and custom indexing hooks - Expand function semantics for requested-output-aware calls,
nargin/nargout,varargin/varargout, local functions, nested functions, anonymous functions, captures, recursion, function handles,feval, and supportedargumentsvalidation - Add explicit indexing context for reads, assignment targets, deletions,
end, comma-list reads, function-argument expansion, and overloaded object indexing before bytecode generation - Add typed builtin descriptors for signatures, output behavior, completion policy, documentation, and stable error identifiers shared across runtime execution, the language server, and generated reference docs
- Add structured execution outcomes with workspace deltas, display events, streamed output, diagnostics, observed workspace/environment effects, figures touched, profiling data, suspension state, and fusion-plan metadata
- Add control-system builtins:
ssfor state-space model objects andnyquistfor SISOtffrequency responses - Add communications builtins:
qammodfor QAM constellation mapping andscatterplotfor complex sample visualization - Add plotting and export builtins:
contour3for 3-D contour line plots andprintfor MATLAB-style figure export - Add optimization option support with
optimoptions
Changed
- Migrate the compiler and runtime to a staged semantic pipeline:
source -> AST -> semantic HIR -> MIR -> MIR analysis -> VM layout + bytecode -> runtime/providers - Remove the legacy AST-to-bytecode execution paths in favor of the semantic pipeline
- Compile calls from typed callable identities and fallback policies across bound functions, builtins, dynamic names, external qualified names, methods, super calls, and
fevaltargets using the shared dispatch model - Make workspace-visible bindings explicit for script exports, function locals,
ans, and dynamic workspace operations - Drive acceleration and fusion planning from semantic facts, with runtime/provider ownership of GPU residency and concrete execution
- Split the WGPU provider out of a monolithic implementation into state, initialization, helper, trait, and operation modules
- Give the JIT a tagged value ABI boundary for semantic function identity, requested output counts, expanded arguments, and non-scalar runtime values, with interpreter fallback