[Maxima] [sage-devel] compiling Maxima by ECL
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Mon Apr 28 02:46:54 CDT 2008
let me first begin by saying that, as politely as I can, Fateman's
email are as close to FUD as it can get. He doesn't seem to use ECL at
all and just judges from some outdated webpages and his own prejudices
about different software libraries.
Regarding the different points which have been raised:
* GNU MP is only used for bignum computations. ECL itself is clever
enough to handle fixnums cleverly and even to unbox fixnum
computations in compiled code. Incidentally, GCL uses GMP as well, so
I do not see the point all.
* The simplistic garbage collector is an option and it is provided for
platforms in which Boehm-Weiser does not run. Currently, this means
_none_ of the supported platforms.
* Boehm-Weiser is a strong garbage collector and a very powerful one
in terms of tunability. You man make it as precise as you want, and
the Java people indeed do. ECL uses it and it has seen only
performance improvements as we have learnt more and more how to better
use it. If the ANSI test suite shows something in that respect is
that, under a lot of consing pressure, it does not perform that bad.
It does not get so close to SBCL's but I doubt any other free
* ECL has a good compromise between all platforms. It provides both C
compiled code and a reasonably fast interpreter. Benchmark show that
the ECL interpreter is not that far from interpreted CLISP. But on the
other hadn CLISP has its own set of optimized bytecodes and when it
compiles it optimizes for those bytecodes. AFAI remember, GCL used
(and probably still uses) a list based interpreter which runs through
forms represented as lists and macroexpanding every form that has to
be done so, and every time it uses it. That is terribly inefficient.
* In terms of maintainability it has shown through the years that it
is easier for somebody to start coding and hacking ECL and adding new
features than with most other platforms. That is how we got ECL ported
to the Microsoft compiler and platform and how different pieces of
software (sockets, asdf, etc) have been adapted to run here. That by
itself is an important value, at least for people who think long term.
* Talking about diverting efforts from the GCL crowd, I am not the
best person to speak about it. I am more than pissed of by the GCL
community since, shortly after ECL reached most ANSI compliance and
portability I was asked to port all that back to the GCL, because they
wanted to achieve the same goal. That was back in '01 or '02, do not
remember so well. What I remember is that those were not very polite
emails and had a kind of "borg" spirit of assimilation, without even
caring about the years spent on achieving that. So talk about
diverting useful efforts.
So, to the interested parties, if you so much care about Maxima
running on just one computer, then stick to sbcl and cmucl which are
pretty superior implementations, but please do not scare people from
porting useful software to other platforms and environments.
Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)
More information about the Maxima