[armedbear-devel] packaging external libs with abcl
Mark Evenson
evenson at panix.com
Sun Sep 20 08:12:48 UTC 2009
On 9/20/09 7:32 AM, Matthew D. Swank wrote:
[…]
> I could just make the precompiled lisp files available on the file
> system, and let asdf load them in my app entry point. Also, if I
> needed the files to be packaged as jars, or if I didn't want the
> overhead of asdf searching the system dependencies, I could capture the
> load order that asdf generates when it compiles the systems and load
> them in proper order directly.
Loading ASDF packaged code from the filesystem
> Of course this all gets a bit messy if library code depends on the asdf
> systems being available at runtime. Also, can all this happen fast
> enough to serve a request?
Why not package the library code in ASDF itself, using ASDF's dependency
mechanism to pull in the necessary code? For packaging JARs with Java
code as ASDF entries, [Alan Ruttenberg's JSS extension][1] allows the
specification of JAR files in ADSF under ABCL. The [following
snippet][asdf-jar] from private unreleased work of my own, wraps the
IRIS WSML reasoner jars necessary to work with in ABCL with a thin Lisp
bridge.
As for "can all this happen fast enough to server a request", assuming
your application is for user response time for HTTP applications (i.e.
on the order of 100ms), the answer is probably no if every request is
going to be a "cold start." But this is more a limitation that any
JVM-based application faces which is commonly architected around by
having workers "warmed up" to the point of serving a request waiting for
incoming requests. Practically all modern HTTP applications use some
sort of warm-up.
[asdf-jar]:
(defsystem :wsml2reasoner-jars
:version "0.6.4" ;; last sync with SVN
:depends-on (:abcld) :components
((:module wsml2reasoner
:pathname "lib/" :components
((:jar-file "wsml2reasoner")))
(:module iris-libs
:pathname "lib/ext/iris-reasoner/iris/" :components
((:jar-file "iris-0.58")))
(:module jgrapht-libs
:pathname "lib/ext/iris-reasoner/jgrapht/" :components
((:jar-file "jgrapht-jdk1.5-0.7.1")))
(:module wsmo-libs
:pathname "lib/ext/wsmo/" :components
((:jar-file "WSML-grammar-20081202")
(:jar-file "wsmo-api-0.6.2")
(:jar-file "wsmo4j-0.6.2")))
(:module log4j-libs
:pathname "lib/ext/log4j/" :components
((:jar-file "log4j-1.2.14")))))
[1]: http://mumble.net:8080/svn/lsw/trunk/
--
"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