Skip to content

Update MATLAB requirement from 0.8 to include 0.9#58

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:claude-fix-issue-57
Dec 29, 2025
Merged

Update MATLAB requirement from 0.8 to include 0.9#58
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:claude-fix-issue-57

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

  • Updates the MATLAB.jl compat bound from 0.8 to 0.8, 0.9 to allow using MATLAB.jl v0.9.0

Changes

The only change is to Project.toml to add MATLAB.jl 0.9 as a compatible version.

Breaking Changes in MATLAB.jl 0.9

According to the MATLAB.jl v0.9.0 release notes:

  1. AbstractArray Conversion: Types that are subtypes of AbstractArray (e.g. Diagonal) are now converted to MATLAB arrays instead of structs.
  2. Tuple Handling: Tuples are no longer converted to MATLAB dictionaries. Instead tuples are converted to cell arrays (if it has mixed types) or numeric arrays (if all elements share a single numeric type).

These breaking changes do not affect MATLABDiffEq.jl because:

  • The package passes regular arrays (vectors) for parameters, initial conditions, and time spans
  • All the APIs used by MATLABDiffEq.jl (put_variable, get_variable, eval_string, jvector, jarray, get_mvariable, get_default_msession) remain unchanged

Key Improvements in MATLAB.jl 0.9

  • The segfault issue with MATLAB versions 2022/2023 is gone on Linux platforms
  • Improved Windows and Linux path handling
  • Expanded AbstractArray support

Fixes #57

cc @ChrisRackauckas

🤖 Generated with Claude Code

This adds compatibility with MATLAB.jl 0.9.0, which includes:
- AbstractArray subtypes are now converted to MATLAB arrays instead of structs
- Tuples are now converted to cell arrays or numeric arrays instead of dictionaries
- Fixes for segfault issues with MATLAB 2022/2023 on Linux

The API used by MATLABDiffEq.jl (put_variable, get_variable, eval_string, jvector,
jarray, get_mvariable, get_default_msession) remains unchanged in MATLAB.jl 0.9.

Closes SciML#57

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor Author

The CI test failure is expected since MATLAB is not available on the CI runner. This is the same behavior as previous PRs (#54, #56) which were merged despite the test failures.

The only change in this PR is updating the MATLAB compat bound from 0.8 to 0.8, 0.9. I verified that:

  1. The package resolution succeeds with MATLAB.jl v0.9.0
  2. All APIs used by MATLABDiffEq.jl are still exported in MATLAB.jl 0.9
  3. The breaking changes in MATLAB.jl 0.9 (AbstractArray conversion and tuple handling) don't affect this package since it only passes regular arrays

cc @ChrisRackauckas

@ChrisRackauckas ChrisRackauckas merged commit ddb6069 into SciML:master Dec 29, 2025
1 of 2 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.

Update MATLAB requirement from 0.8 to 0.9

2 participants