[armedbear-devel] abcl and maxima
Mark Evenson
evenson at panix.com
Sun Feb 27 09:37:26 UTC 2011
On 2/27/11 9:10 AM, Reinhard Oldenburg wrote:
> Dear All,
> after quite a while I came back to running maxima on abcl becaus there
> is an increasing interest in incorporationg maxima in Java based projects.
> Some time ago Mark explained that in principal loadinf form jars can be
> done, but it seems that it ned some time to twea maxima-load.lisp so
> that it loadsfrom a jar containing all the abcl files.
> Has anything happend on this in the meantime?
I couldn't find 'maxima-load.lisp' in the CVS HEAD version of the
sources. Is this file located somewhere else, perhaps in a secondary
packaging mechanism/
We can currently load ASDF2 systems composed of source pretty easily
from jar files.
I just packaged Maxima this way by the following steps:
1. From CVS HEAD I patched 'src/maxima.asd' to get rid of the
incompatible with ABCL's ASDF2 jar translation rules.
Index: src/maxima.asd
===================================================================
RCS file: /cvsroot/maxima/maxima/src/maxima.asd,v
retrieving revision 1.18
diff -u -r1.18 maxima.asd
--- src/maxima.asd 2 Jan 2011 06:11:33 -0000 1.18
+++ src/maxima.asd 27 Feb 2011 09:28:47 -0000
@@ -9,9 +9,9 @@
;; Don't try to optimize so much in ECL.
;; Therefore functions can be redefined (essential for share libraries).
#+ecl (declaim (optimize (debug 2)))
-
+#+nil
(defvar *binary-output-dir* "binary-ecl")
-
+#+nil
(defmethod output-files :around ((operation compile-op) (c source-file))
(let* ((source (component-pathname c))
(source-dir (pathname-directory source))
2. Then I zipped up the contents of the 'src' directory in 'maxima.jar'
unix$ zip -r maxima.jar src
3. Then I pushed the JAR-PATHNAME containing the location of the
directory containing 'maxima.asd' to the ASDF *CENTRAL-REGISTRY*
CL-USER> (pushnew
#P"jar:file:/Users/evenson/work/maxima/maxima.jar!/src/"
asdf:*central-registry*)
Now, I can load Maxima from the JAR via (ASDF:LOAD-SYSTEM :maxima),
which will compile the FASLS on first load according to the ASDF2
TRANSLATE-OUTPUT-LOCATION rules.
Since you probably want to include the FASL (i.e. the '*.abcl') files in
your distribution JAR, we have to come up with a way to coax ASDF2
looking for such a cache in 'maxima.jar'. This is the piece that is
missing to my knowledge, although Alan Ruttenberg might have posted a
patch about a year ago to have this work. There was also much useful
discussion on getting such a mechanism to load FASLs as part of the
ASDF2 definition for ECL, as one might not have access to the gcc
compiler at runtime.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the armedbear-devel
mailing list