That's the easy part of a Webified REPL.
The harder parts are what to do when Maxima asks questions before returning
an answer, e.g.
(%i2) integrate(x^a,x);
Is a+1 zero or nonzero?
n;
(%o2) x^(a+1)/(a+1)
or gives an error rather than returning an answer:
(%i3) 1/0;
Division by 0
-- an error. To debug this try: debugmode(true);
a bunch of people have banged their heads against these (seemingly trivial)
issues.
-s
On Fri, Apr 8, 2011 at 12:02, Leo Butler <l.butler at ed.ac.uk> wrote:
> I've been hacking at combining Maxima with AllegroServe.
> I have a working version, but I am running into a bit
> of a knowledge shortfall:
>
> Could someone describe to me roughly how the Maxima top-level
> works? I believe that mread -> meval -> displa implements
> the REPL but there seem to be some flags set that I am missing
> because that trio produces output with a superfluous 'displayinput'
> flag.
>
> If it helps, I am running Maxima and AllegroServe in the same lisp
> image, and I am capturing Maxima's input from a get request entity,
> implementing the REPL and firing back the output string. It's
> quite naive, but I can see that we can replace displa with
> a more suitable output parser -- and since meval is spitting out structured
> Maxima forms, turning that into html or whatever
> should be quite feasible.
>
> With a little JavaScript, we could make pretty near any browser
> an interactive front-end to Maxima.
>
>
> Leo
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>