Skip to content

RunMat v0.5.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 15:56
· 141 commits to main since this release
e042a48

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.toml and runmat.json manifests for package metadata, source roots, local dependencies, named entrypoints, source-root discovery, package folders, class folders, and private helpers
  • Add source classdef objects 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 supported arguments validation
  • 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: ss for state-space model objects and nyquist for SISO tf frequency responses
  • Add communications builtins: qammod for QAM constellation mapping and scatterplot for complex sample visualization
  • Add plotting and export builtins: contour3 for 3-D contour line plots and print for 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 feval targets 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