[Ecls-list] Maxima + ECL

Goffioul Michael goffioul at imec.be
Mon Jan 14 09:01:56 UTC 2008


> Hi,
> 
> I have been trying to compile Maxima (a computer algebra 
> program written in Lisp) with ECL. In summary I wasn't able 
> to compile it but it runs OK in the interpreter (after some 
> changes to the source code).
> 
> Here are some problems I ran into. I mention this for the 
> record in case someone eventually has time to work on bug fixes.
> 
> (1) ECL apparently strips a leading period from a symbol name 
> sometimes. E.g. a symbol .n. was apparently read as n. and 
> then ECL complained that n. is not defined.
> Such symbols might cause problems only when they are macro 
> arguments (at least I wasn't able to verify other instances). 
> This problem is minor in the sense that I can work around it 
> with a few changes to the Maxima source code.
> The symbols are not instances of the #. macro (i.e. what 
> appears in the code is just .n. and not #.n.).
> 
> (2) ECL apparently sometimes generates incorrect function 
> calls when the function being called is not yet defined. This 
> appeared only in compiled code. Most function calls work 
> correctly but in a few cases it appears the function to be 
> called is not actually called. This is a serious problem.
> Is there some post-compilation reconciliation phase or 
> something which I can invoke to fix up all function calls?
> 
> Because of (2) I gave up on trying to compile, and just 
> loaded the source code instead. As a result, Maxima runs 
> mostly or maybe entirely successfully, although of course it 
> is slower than if it were compiled.
> 
> If anyone has some advice about (2) I would be interested to hear it.

I did this port about 2.5 years ago (look into maxima mailing list
archive around May 2005). As I eventually didn't use the result, I
didn't go on with the development. However, I did succeed to *load*
and *compile* Maxima with ECL, however I had to change a few things
to make it work, which are basically the problems you're having now:
- macro arguments starting with '.' does not work in ECL
- compilation had to be tuned to match the way-of-doing of ECL:
instead of compiling a myriad of separated fas files, compile
everything into a single fas file (more or less the ECL-equivalent
to save-image)

I attached the patch I posted 2.5 years ago on the maxima mailing
list. That's funny, because I got contacted by someone else last
week who was interested in exactly the same thing. If you want
I can send you his email address, so you could share your experience,
results or work.

Michael.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: maxima-ecl.diff.gz
Type: application/x-gzip
Size: 7129 bytes
Desc: maxima-ecl.diff.gz
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080114/343d6966/attachment.bin>


More information about the ecl-devel mailing list