And I have started work on a native module to provide direct access to some internals of GNU APL using a simple protocol.
The basics works right now, but I have a few questions:
- I have a command (EE[1]) that starts the server. I would like to pass in an array of arguments (like port number, for example). What is the correct way to read these values?
- Right now, I just call functions on the workspace directly, and since I do this from a separate thread, it's guaranteed that this will give us race conditions and cache coherency issues. Until a "proper" threading solution is in place, how about simply having a single lock that is held while anything is touched? (in your code, that lock would be held at all times except for when you're waiting for input by the user)
- Could this module be shipped as part of the GNU APL distribution? That way it would be compiled as part of the normal installation and there would be no problems installing the Emacs support.
- I'm building and installing GNU APL into a separate directory (i.e. not /usr/local) and I find that I have to specify the full path to the .so file when I load it with ⎕FX. Is there a correct way to load a library relative the GNU APL installation directory?
Regards,
Elias