[armedbear-devel] packaging external libs with abcl

Alessio Stalla alessiostalla at gmail.com
Fri Sep 11 14:25:07 UTC 2009


On Fri, Sep 11, 2009 at 3:20 PM, Matthew D. Swank <akopa at charter.net> wrote:
> I've been messing with running abcl on the google appengine, and I was
> wondering what was the best way to package libraries, especially the
> results of loading an asdf system and its dependencies?

This has been somewhat discussed in the thread "[OT] best way to
structure and deploy a project" which I started. What I ended up doing
is to use ANT to build my system, both the Java part (natively) and
the Lisp part, by making it invoke ABCL with --load
compile-system.lisp, where compile-system.lisp is (push such-and-such
asdf:*central-registry*) (asdf:oos 'asdf:compile-op :the-system). ANT
packages it all in a jar, with a directory structure such as, e.g.,

system-name/
  bin/                --classes, .lisp, fasls
  lib/                 --lisp libraries

This is similar to what ABCL itself does (in fact, my ant file is
basically a trimmed down version of abcl's), except abcl has no
library dependencies.
Now, afaik asdf can only load from files, so the jar contains a main
class written in Java that detects if it's been launched from a jar,
and if it is, it extracts the jar in a temporary directory and uses
asdf to load the system from there. This of course cannot work on
AppEngine; maybe the patch to load from jars addresses this issue as
well?

hth,
Alessio




More information about the armedbear-devel mailing list