On Jan 22, 2012, at 10:09 AM, Anton Vodonosov wrote:
[…]
A conditional read macro at runtime to select "/var/tmp" or "c:/temp"?
So the jar's are unpacked into a temporary dir?
Buildtime: no. We create a hash of current pathnames to desired pathnames relative to the jar archive and package efficiently (directly).
Runtime: dependent on the JVM implementation that hosts the Bear.
It would be good also to have a solution when fasls are loaded from jar directly. It would require to present jar as a file system to lisp, so that lisp functions merge-pathnames, open and others work on like #P"jar://some/path/".
ASDF-JAR includes both source and fasts by default. The ABCL compiler should always be available, but it can take a while before the JIT really warms up, so binary fasts are desired. That Java has a universal byte code representation is used to great advantage here.
The assumption is that the additional bytes to include source is trivial.
It will solve the with choosing right temporary directory and will allow to load lisp code in environments where we don't have writable file system at all - Google App Engine.
GAE should be able to use binary artifacts produced by ASDF-JAR without issues. [abcl-servlet][] provides a plausible hosting framework.
[abcl-servlet]: https://bitbucket.org/easye/abcl-servlet
Of course, I realize it is probably a significant work of source to support this, so it's just an idea rather than a "feature request".
We love features. It gets us more users.
-- Mark