Skip to content

MATLAB/Octave nodes get empty reads: concore_literal_eval.m / concore_literal_serialize.m are not copied into studies #648

Open

Description

@Siddhanthguptaa

Since #575, concore_read.m, concore_write.m, concore_initval.m and concore_default_maxtime.m call concore_literal_eval / concore_literal_serialize, but mkconcore copies the MATLAB/Octave runtime into out/src from a fixed list that doesn't include those two files. So every generated .m node is missing them.

In concore_read.m the parse is inside try/catch, so the "undefined function" error turns into parsed = [] and the read silently returns empty. With demo/sampleM.graphml on Windows (Octave 11.3) the controller stops at the first read:

error: ym(1): out of bound 0 (dimensions are 0x0)
error: called from
    controller at line 3 column 6
    controllerM at line 17 column 5

in1/ym exists and contains [1.0, 0.01]; calling concore_literal_eval in the node folder gives 'concore_literal_eval' undefined. With the two files copied into the node folder, the same study runs the full loop.

CI doesn't catch this because the MATLAB job runs from the repo root, where the helpers are on the path.

I have a small fix with a test and will open a PR against dev.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions