On Fri, Sep 11, 2009 at 3:20 PM, Matthew D. Swank akopa@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