MATLAB compatibility in RunMat
RunMat compiles MATLAB-language .m files and executes them through its interpreter and JIT compiler. It is designed to support MATLAB language syntax and semantics completely.
RunMat's current compatibility surface includes scripts, functions, multi-file projects, MATLAB-style packages, classes, and more than 1,000 built-in functions. More than 12,000 automated tests systematically exercise supported behavior. If you observe a compatibility difference, report it as a GitHub issue.
Is RunMat a drop-in replacement for MATLAB?
For supported MATLAB-language code, RunMat provides a drop-in execution path across the CLI, collaborative desktop app, and web browser. Existing .m files can run without RunMat-specific modifications.
Projects that depend on specialized toolboxes, MEX extensions, or hardware integrations may require changes.
What RunMat supports
| Area | Current capability |
|---|---|
| MATLAB-language source | Scripts, functions, arrays, operators, control flow, N-D indexing, classes, imports, packages, and private functions. |
| Built-in functions | More than 1,000 documented built-in functions across numerical computing, data, plotting, signal processing, file I/O, and engineering workflows. |
| Multi-file projects | Source roots, cross-file resolution, MATLAB-style +pkg packages, class folders, private functions, local dependencies, and named entrypoints. |
| Execution | Run the same source from the CLI, collaborative desktop app, or web browser. |
| Acceleration | Supported operations can use RunMat's automatic GPU acceleration without requiring separate GPU code. |
Support is evaluated by feature and call form. A function may be available while a particular option, external dependency, or related toolbox product is not yet supported.
How RunMat maintains compatibility
RunMat tests supported behavior systematically. The codebase contains more than 12,000 automated tests across the language pipeline, execution engines, runtime built-ins, project composition, acceleration, plotting, CLI, language tooling, filesystem behavior, and browser/WASM bindings. Not every test is a MATLAB compatibility test, but together they protect behavior that existing MATLAB-language code relies on.
Compatibility-focused tests cover language semantics, built-in call forms and errors, complete execution paths, CPU and GPU result parity for accelerated operations, and behavior across native and browser hosts. The current support surface can be inspected through the public implementation and test infrastructure:
Errors and warnings are treated as part of compatibility, not only successful results. Bounded runtime telemetry records failure stages and error codes without collecting source code or workspace data, helping the team identify recurring failures and prioritize fixes.
- Browse the generated built-in function reference.
- Inspect the RunMat source and tests.
- Review the continuous-integration checks.
Check, run, and test existing code
Use runmat check to find static blockers, run the intended workflow, and then execute the project's existing tests:
runmat check analysis.m
runmat run analysis.m
runmat testrunmat check uses the same parser, static analysis, source lookup, and compile validation as RunMat's editor tooling, but it does not execute the code. A clean result means no static blockers were found. Running the workflow is still necessary to exercise data-dependent behavior, external files, and runtime integrations.
runmat test discovers and runs MATLAB-style script, function, and class tests. The collaborative desktop app uses the same test discovery and can run all discovered tests or a selected subset.
For multi-file codebases, runmat.toml can define source roots, local dependencies, test directories, and named entrypoints so the same project layout is used for checking, running, and testing. RunMat preserves MATLAB-style organization including +pkg packages, classes, and private functions. See the CLI guide, Projects guide, and runmat.toml configuration reference for the full options.
Where changes may still be required
An existing project may need changes when it depends on:
- a specialized MATLAB toolbox outside RunMat's current compatibility surface;
- a MEX extension that RunMat does not yet support; or
- a hardware integration that is not available in the selected RunMat host.
Compatibility target
RunMat uses MATLAB R2026a as its current semantic engineering target for supported behavior. The target guides observable behavior such as values, classes, shapes, indexing, accepted inputs, outputs, warnings, and errors.
The semantic target is not a claim of complete R2026a feature, toolbox, product, file-format, or integration coverage. RunMat also provides documented extensions beyond MATLAB-language behavior; those extensions are not compatibility claims.
RunMat is an independent runtime. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.