[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