open-research / sumatra

http://neuralensemble.org/sumatra/
BSD 2-Clause "Simplified" License
127 stars 48 forks source link

Add `Executable` subclass and `dependency_finder` module for Matlab/Octave #19

Open apdavison opened 9 years ago

apdavison commented 9 years ago

Imported from Bitbucket issue 18, created by apdavison on 06-26-2010 at 21:21, last modified: 02-25-2014 at 09:45

apdavison commented 9 years ago

The dependency finder for Octave (I guess Matlab will be similar, it's so long since I used it) will be complicated, since it has implicit loading. From the docs:

"When Octave encounters an identifier that is undefined, it first looks for variables or functions that are already compiled and currently listed in its symbol table. If it fails to find a definition there, it searches a list of directories (the path) for files ending in .m that have the same base name as the undefined identifier."

There is also the built-in source function, for running scripts, then we have dynamic-loading of compiled code: oct-files and mex-files.

There is also the pkg system to consider.

The Pytave package - https://launchpad.net/pytave - could be useful.

Trac comment by apdavison on 07-20-2010 at 14:08

apdavison commented 9 years ago

The OMPC package could also be useful: http://ompc.juricap.com/Examples

Trac comment by apdavison on 02-14-2011 at 16:12

timtroendle commented 9 years ago

What's the current status here? I can see that the according files exists, but this doesn't work for me even with small source code tweaks and there are no tests as far as I can tell. Is the existing solution known to be in use somewhere?

In my setup with a Hello-World MATLAB function on a Linux 64bit machine using Sumatra 0.7.1, smt basically hangs whenever I call run. There is a MATLAB process but it doesn't have any load; maybe it's stuck in the interactive console. Also, whenever smt accesses MATLAB -- for example when doing smt configure -e matlab -- my prompt is broken afterwards. There are no characters visible anymore.

My workaround will most probably be to setup a short Python script that accesses sumatra with its API and calls MATLAB by itself. I'm still wondering if it's worthwhile to spent more time into a proper solution and how much the current solution needs to be changed or whether I'm doing something wrong. Hence my above question whether someone is currently using this.