On 3/4/2011 8:06 AM, Raymond Toy wrote:
> On 3/4/11 10:04 AM, James Redford wrote:
>> Hello. Can somebody please tell me what using CCL instead of GCL is intended to accomplish?
> Basically, gcl does not support some of the things we want to use.
> Currently it's ok, but the proposed change to use cl-ppcre for building
> the help database will not work with gcl. Gcl does not support enough
> of Common Lisp.
>
> However, gcl is one of the fastest lisps running gcl. Ccl is slower, I
> think. (I don't have any machine that runs both gcl and ccl so I cannot
> say for sure.)
>
> Ray
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
I think it really boils down to the fact that Bill Schelter
used to support GCL and Maxima, and when he viewed it necessary
to do something to the supporting lisp to make Maxima run better
or faster, he was interested and able to make GCL changes. Bill
Schelter is, sadly, no longer available.
People doing
more development on Maxima have changing needs as they become
more ambitious in terms of features or in terms of supported
platforms of hardware and software. They are a different
group from the current GCL support and are finding that GCL is not keeping
pace with other Common Lisp systems in responding to their
needs.
This includes, I think, support for other character sets
(though I admit to not reading the slew of related messages).
I personally find the deficiencies of GCL have to do with
(a) outmoded upper/lower case stuff. But this is an ANSI
Common Lisp issue, and except for maybe Scieneer and Allegro, all
the lisps share this problem. Including CCL.
(b) GCL doesn't do foreign function calls, I think.
Some of the other lisps do this, though this is not part of
the ANSI standard and may or may not fall under UFFI or
some other attempt to create a standard. I would not mind
if someone who knows about this would comment on whether
we could actually use FFI in the Maxima distribution, e.g.
to link C programs in Linux, Windows, Mac etc in a neat way,
if we used CCL. Personally, I experiment with foreign function
libraries and lisp, but I can't do it with GCL.
(c) There may be deficiencies in support of
errors, handler-case -- these have, I think, been papered over,
but I'm not sure if there are remaining issues.
(d) I am guessing that GCL isn't going to work in 64-bit mode.
I don't mind this at the moment, but maybe it will matter sometime.
...............
I HAVE tested GCL and CCL on Windows, running Maxima 5.23.2, and
there is a very significant difference between the two in
terms of running speed. It could be that CCL optimization
flags could be changed or there is some global inefficiency
that could be fixed, but CCL seems to run substantially
slower, as I have previously reported.
*Frankly, a slow-down of a factor of 3 is severe enough that
some people might consider it unacceptable.
*
To someone downloading a binary file of Maxima, the
only visible consequence seems to be this slowdown. (Or is
there something else??) CCL might break other things, or
have advantages I am unaware of?
For the developers, the immediate tradeoff is easier
generation of the help files in non-English text. There
are other further positive aspects for the future, if
compatibility with GCL's peculiarities go away.
(Or is there something else?)
I would love to hear that CCL can be sped up to be
close to GCL in speed and make the lives of developers
easier. But, given a choice of
downloading-- where there are two otherwise
indistinguishable systems-- I would
pick the one that runs 3X faster :)
I hope others will elaborate on the advantages of CCL
and/or speed it up!!!
RJF