Proposed in the July 2026 AI-assisted code review (Claude Code).
Tracks cross-cutting concerns for landing the v1.4 development-branch backends on master (note: "v1.4"/"v1.4.1" are NEWS headings on that branch, not released tags):
(1) Dispatch-table compatibility. The branch's backends use the integer-ID + function-pointer dispatch that master reverted in v1.3.2 (7f6f2cb) to stay backward compatible with existing generated .m files. Proposed direction: keep string dispatch as the default everywhere and expose the integer-ID table behind an optional flag (e.g. -dispatch-id or similar) so projects that regenerate both the gateway and the .m stubs together can opt into the faster path; the flag would apply uniformly across backends and identically in both implementations. Final decision on naming and implementation TBD in this issue's discussion.
(2) nocopy is out of scope. The branch's experimental nocopy modifier is a prototype toward #21 (avoid array copies in CPU codegen); its inout mode was already disabled on the branch as unsafe under MATLAB's copy-on-write. Design discussion and any eventual landing belong in #21, not in this backend merge. Note the sanctioned zero-copy path is the C++ MEX Data API's move semantics (and Octave's fortran_vec()), so #21 is likely best pursued via the -cppmex/-oct backends rather than the C MEX API.
(3) Parity coverage. testing/test_python.sh must be extended to every ported backend; the branch currently pins none of them.
(4) Sequencing over v1.3.5 (#41). Several v1.3.5 fixes were backported from this branch; others (interleaved-complex support fixes, driver exit codes, version single-sourcing) must flow forward into the backend code during the merge.
Proposed in the July 2026 AI-assisted code review (Claude Code).
Tracks cross-cutting concerns for landing the v1.4 development-branch backends on master (note: "v1.4"/"v1.4.1" are NEWS headings on that branch, not released tags):
-cppmex(MATLAB C++ MEX API)-oct(native Octave oct-file)-fmex(Fortran 90 MEX gateway)(1) Dispatch-table compatibility. The branch's backends use the integer-ID + function-pointer dispatch that master reverted in v1.3.2 (7f6f2cb) to stay backward compatible with existing generated
.mfiles. Proposed direction: keep string dispatch as the default everywhere and expose the integer-ID table behind an optional flag (e.g.-dispatch-idor similar) so projects that regenerate both the gateway and the.mstubs together can opt into the faster path; the flag would apply uniformly across backends and identically in both implementations. Final decision on naming and implementation TBD in this issue's discussion.(2)
nocopyis out of scope. The branch's experimentalnocopymodifier is a prototype toward #21 (avoid array copies in CPU codegen); itsinoutmode was already disabled on the branch as unsafe under MATLAB's copy-on-write. Design discussion and any eventual landing belong in #21, not in this backend merge. Note the sanctioned zero-copy path is the C++ MEX Data API's move semantics (and Octave'sfortran_vec()), so #21 is likely best pursued via the-cppmex/-octbackends rather than the C MEX API.(3) Parity coverage.
testing/test_python.shmust be extended to every ported backend; the branch currently pins none of them.(4) Sequencing over v1.3.5 (#41). Several v1.3.5 fixes were backported from this branch; others (interleaved-complex support fixes, driver exit codes, version single-sourcing) must flow forward into the backend code during the merge.