Hi!
1) I've recently tried to compile Maxima using Armed Bear CL (what a
cool name!) 0.13. I followed the instructions for compiling from a
lisp (instead of gnu automake). I got to a point where I could use
Maxima from ABCL, but I couldn't dump the image as in other lisps. I
guess this feature is not yet in ABCL or is it?
I know Rober Dodier is working with the developers of abcl to get the
combination abcl+maxima running. It would be interesting to have
maxima on JVM with reasonable speed (at least in the range of GCL) as
it would mean that maxima would work on 90% of computers on this
planet (though JVM is not opensource if I'm not mistaken). Accessing
java classes could alse be very beneficiary to maxima in various ways
(faster plotting, interactive features, gui, numerical libraries...)
though these features would be bound to ABCL only unfortunately.
What are chances of seeing maxima run on abcl (in a complete way) in
the future? Are there any unsolvable problems regarding ABCL that
prevent from maxima to be fully operational on ABCL (like this image
dump)?
Also has anyone been successful with running maxima in SBCL on
windows? I think Maxima could benefit a lot from calling external
libraries - that's how all the big ones get their numerical speed
(MATLAB, Mathematica, Octave, R) - via calling BLAS+Lapack. Sadly
most of the users are running gcl on windows so it's kind of
impossible to work in this direction until we have a Maxima+lisp
combination that runs well on all common platforms (windows, linux,
mac os x). I think supporting many different lisps is not good in a
sense that developers' time would be much better spent on other
things and prevents them from implementing new things that wouldn't
be compatible with all the lisps.
2) Regarding matrix implementation in maxima: Currently matrices are
lists of lists. As far as my lisp knowledge goes, this means matrices
are stored via linked lists. I don't know if one can implement
matrices in a more inefficient way without trying really hard :)) So
it's kinda funny in that aspect. I've seen that some work has been
done towards implementing them as lisp arrays (the 'amatrix' package,
with interesting ideas). What are the reasons they are not
implemented as arrays? I don't know lisp very well, but I think lisp
arrays don't have any nasty restrictions that would prevent
implementation of matrices?
Maxima also has some functions for working with lisp arrays, but this
interface is very clumsy (I never got around to use it - arrays are
easier to do in lisp than in maxima it seems :D). I think lisp arrays
should be hidden from the maxima user, but used internally in maxima
program. Perhaps even maxima lists can be implemented as arrays?
I think maxima data types (lists matrices arrays) need some work in a
sense that the user is not confused by them. For instance some things
work with lists, some with arrays, vectors can be either lists or
matrices ... it's a mess.
Perhaps the best feature of having matrices at all in maxima is that
they could be implemented as 2D lisp arrays (but they aren't).
In MATLAB everything is a matrix, in Mathematica everything is a
list, Maxima has lists, matrices and arrays. Not easy on the user nor
the developers where the arguments of some functions can be either
list of lists or matrices. Any thoughts on unification of these
types? Maxima matrix can also be only 2D, so one has to resort to
list of lists for more dimensions... I personally always use lists of
lists until I need a matrix for something. Converting is a pain though.
Ziga