Maxima as a .dll/.dylib/.so in wxMaxima #1720
Replies: 3 comments 2 replies
-
Perhaps that would be a thing that is better discussed in the maxima-discuss mailing list: I personally dislike the socket communication for various reasons. I also would be happy if maxima would use a communication method that requires one to talk to one's firewall admin. But I don't want to create my own fork of maxima and don't want to be limited to a single maxima flavour, neither so if maxima would get a new interface I would prefer if the maxima team wrote it. |
Beta Was this translation helpful? Give feedback.
-
ecl and gcl are lisp-to-c converters so they would make good dlls, too, perhaps. |
Beta Was this translation helpful? Give feedback.
-
What I really like about running maxima as a separate process is that if maxima crashes or runs out of memory the worksheet with all the user did until now lives on. |
Beta Was this translation helpful? Give feedback.
-
It's my understanding that wxMaxima currently uses a socket-based interface to Maxima. This is, of course, a very robust choice, in the sense that the Maxima process can fail, be restarted, etc.
I would guess, however, that it can incur a lot of performance penalty in some cases, and in other cases, it makes communicating objects highly circuitous.
I wanted to let you know the existence of a functionality called SBCL-LIBRARIAN. It allows Common Lisp programs to expose a native C interface to any language that speaks C. There's an example in the directory. You specify the C API to your Lisp library (a mapping between what C function names invoke what Lisp function names), and it'll generate a header and a
.dll
file.It only works with SBCL, but you get the performance benefits of SBCL.
I'm not sure if it would be a good idea, but it might be worth thinking about using this as an alternative to the socket-based interface. It would allow native Lisp/C data structures (e.g., strings) to be passed and manipulated directly by C++.
Beta Was this translation helpful? Give feedback.
All reactions