<div dir="ltr">Hi Faré,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 1, 2013 at 12:04 AM, Faré <span dir="ltr"><<a href="mailto:fahree@gmail.com" target="_blank">fahree@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I admit I had never looked at how ACBL-JAR works before. I see it's there:<div><a href="http://trac.common-lisp.net/armedbear/browser/trunk/abcl/contrib/asdf-jar/asdf-jar.lisp" target="_blank">http://trac.common-lisp.net/armedbear/browser/trunk/abcl/contrib/asdf-jar/asdf-jar.lisp</a><br>
</div><div><br></div><div>IIUC, the gist is that you somehow traverse the system to gather what files to zip,</div><div>and the tricky issue is that since the output-translations function will be different</div>
<div>in the build environment and the deployment environment, you have to build a map</div><div>of build-time pathnames in the filesystem to deploy-time pathnames in the jar file.</div><div>Because ASDF 1 or 2 didn't have a good way to do that, ABCL currently does it</div>
<div>in a clunky way that doesn't account for ASDF extensions.</div><div>Doing it correctly is possible using exported functionality of ASDF3,</div><div>but requires intercepting (with-asdf-cache (:override t) ...) and</div>
<div>*output-translation-functions* to build a reverse translation table</div><div>around a call to (traverse 'load-op system).</div></div></blockquote><div><br></div><div style>As we discussed on IRC, I think it's best to hook into ASDF's facilities: This is simply the only way to leverage cross-implementation efforts. If ASD files need to be fixed or changed to support these kinds of hooks, I'm quite sure chances of that happening increase if people on all implementations are bound to run into them.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>Your second email suggests you're looking into combining fasls as an alternative to building a jar. Sounds great. Regarding how to build a system that loads the concatenated fasl,</div>
<div>see in asdf/bundle.lisp the (largely untested, stolen from asdf-ecl.lisp)<br></div><div> defmethod perform ((o binary-op) (s system))<br></div><div>Or search the same file for "Example use:"</div></div></blockquote>
<div><br></div><div style>Yes, I'm trying to come up with the best way to support deployment. Both the JAR solution as well as the "concatenated FASL" solution aim at that goal. If the concatenated FASL solution helps to get there, then that's what I'll aim at.</div>
<div style><br></div><div style>Bye,</div><div style><br></div><div style>Erik.</div></div></div></div>