Skip to content

Umbrella: merge plan for the v1.4 development-branch backends (-cppmex, -oct, -fmex) #45

Description

@zgimbutas

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions