[Maxima] more about Maxima + ECL
robert.dodier at gmail.com
Sun Apr 27 21:07:44 CDT 2008
I've been looking at Maxima + ECL a little bit more and here is a summary.
I committed ECL-specific changes to patches-for-ecl-branch in CVS.
It would be extremely helpful if someone else would try the ECL branch.
Be advised that you must use the CVS head version of ECL, not the 0.9j release.
By the way I am working on Linux.
(1) Maxima + ECL, interpreted, works OK although there are about 12
unexpected test suite errors. Of the errors, I see 3 kinds.
(1a) different results in floating point computations
(1b) simplification problems -- i.e. equivalent but different expressions
(1c) a type-coercion problem -- failed to coerce an integer to a complex
number or something like that.
Probably resolving 1c is straightforward. We could ignore 1a
but it pains me that floating point results, which should be precisely
equal, turn out different. Not sure about 1b.
(2) Maxima + ECL, compiled, is a mess. The assume stuff
(testing the sign of expressions) doesn't work and that messes up
a lot of other stuff (integrals, limits). I am pretty sure that the
root problem is that EVAL-WHEN is not handled correctly, or,
at least, not handled in the same manner as other Lisp implementations.
Aside from assume, there is probably a lot of other broken
functionality, since Maxima makes heavy use of EVAL-WHEN.
I don't know what it would take to fix the EVAL-WHEN stuff.
Maybe I am just doing stuff wrong. I would really, really appreciate
it if someone else would grab the ECL branch and try it.
(3) Maxima + ECL, interpreted, runs its testsuite in about 10 times
as long as for Clisp or GCL. (GCL is definitely faster than Clisp,
but both are much faster than interpreted ECL.)
Maxima + ECL, compiled, is faster, maybe as fast as Clisp,
but I can't tell for sure since there were so many errors.
Now somebody is going to complain blah blah blah, no proper
benchmarks, blah blah blah. I'm not buying it.
If a Lisp implementation runs the test suite slowly, it is slow,
period. There is no getting around it.
(4) ECL's COMPILE function is very slow. That's too bad since
Maxima would like to compile stuff like integrands and functions
to be plotted.
Well, there you have it. Maxima is a rather ancient and
idiosyncratic program, so it is a hard test of Lisp compilers,
More information about the Maxima