--- On Tue, 8/24/10, Mark Evenson evenson@panix.com wrote:
Actually, if you look at the error, ASDF is looking for 'foobar.lisp' to see if it is out of date with respect to the 'foobar.abcl' FASL. With ASDF2, you just need to package the source in the jar as there is a new mechanism for establishing links between the source and the compiled in the ASDF-OUTPUT-TRANSLATIONS machinery, which by default writes all FASLs under "~/.cache/common-lisp".
I dunno. ASDF's behavior seems kind of crazy. Whether the .abcl is present has no effect; if the source is present, ASDF compiles it and writes it to the cache, otherwise it barfs out an error. Doesn't that seem strange? Wouldn't one expect that if the .abcl is present, and demonstrably up to date, that the .abcl gets loaded and the .lisp is ignored?
If your intention is to provide a jar archive containing the entire Maxima system ready to run without further compilation, you'll need to fiddle with the source-to-fasl translation mechanism as documented in the [ASDF manual][1], but as a shortcut convince yourself that things will work from a jar, you can probably start with calling ASDF:DISABLE-OUTPUT-TRANSLATIONS before you invoke the ASDF:LOAD-OP.
I called (asdf:disable-output-translations) but it had no effect.
I remember some traffic on the ASDF mailing list a couple months ago about creating pure binary ADSF definitions in the context of distributing systems for ECL, for which a runtime without gcc means no compiler.
Well, that sounds interesting. I guess I can hope that they'll release something eventually.
And maybe Alan Ruttenberg has a more advanced solution here as he had (from what I remember) experimental code to dump all current ASDF definitions in a running ABCL image to a jar file that could be restarted. I believe if you search the armedbear-devel archive there might be a reference to this work.
Searched the list archives back to Jan 2010, no luck. Found a lot of stuff about ASDF and jars but I couldn't identify any of it as something about restartable jars. Thanks for the tip anyway.
best
Robert Dodier