On Mon, Mar 9, 2009 at 7:34 AM, Gerd Kortemeyer <korte at lite.msu.edu> wrote:
> How about a real "server mode" for Maxima, so its kernel can run as a
> daemon, and be used by other applications? This has to be truly
> scalable in high load situations and not start a new process every
> time. We fudged something for our LON-CAPA project, but it is
> basically behaving like terminal emulation, "typing" the expressions
> into the command line of a running Maxima:
I've probably mentioned that there is a script share/contrib/maxima-server.lisp
which listens for connections and forks a new process (generally
cheaper than a cold start) for each client. It uses POSIX functions;
at present it works only with SBCL. Maybe other Lisps have the required
functions.
There seem to be 2 general problems, not really related to the server
implementation; one is handling out of band data (errors and asksign),
the other is the format of data sent and received.
In reference to the latter, it would be preferable to transmit data in a
form which permits fast parsing. That might mean Lisp expressions,
or just prefix expressions of some kind. It occurs to me that grind
might have a prefix-only mode in which all operators are treated as
prefix operators. Or maybe some kind of binary (non-text) format.
We've probably been over this before, sorry for rehashing it.
Robert Dodier