[asdf-devel] creating a distribution using asdf

Faré fahree at gmail.com
Wed Dec 29 02:59:39 UTC 2010


Dear Sam,

in a first approximation, you could use something like:

(defun all-steps-for-system (system)
  (asdf::traverse (make-instance 'asdf:load-op :force t)
(asdf:find-system system)))

Then you could find all the files produced in order with:

(defun all-files-for-system (system)
  (loop :for (operation . component) :in (all-steps-for-system system)
     :for output-files = (asdf:output-files operation component)
     :append output-files))

Problem A: there might be more than fasls amongst files produced, e.g.
object files produced by cffi-grovel.

Problem B: files and systems loaded outside of the asdf dependency
mechanism proper are untracked. These include systems loaded from .asd
files directly, either by an explicit (asdf:load-system ...) or by a
:defsystem-depends-on declaration. Some systems rely on that, e.g.
iolib when it depends on cffi-grovel. Solving this problem will
require modifying ASDF to basically trace load-system. OR we could
modify the loading so as to track which components were needed

XCVB solves these problems - actually xcvb-master works exactly that
way. However, I haven't done the hard work to support linking .o files
into single image deliverables, since it's a portability hell.

PS: thanks a whole lot for including ASDF in CLISP and keeping it up to date!

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Brain, n.:
        The apparatus with which we think that we think.
                — Ambrose Bierce, "The Devil's Dictionary"




On 29 December 2010 03:31, Sam Steingold <sds at gnu.org> wrote:
> Hi,
> How do I distribute an application built using asdf?
> Specifically, given file foo.lisp, I need the list of
> all the fasl files of all the files on which foo.lisp depends (+
> foo.fasl) in the correct order of loading.
> Thanks!
> --
> Sam Steingold (http://sds.podval.org/) on Ubuntu 10.04 (lucid)
> http://iris.org.il http://ffii.org http://memri.org http://jihadwatch.org
> http://palestinefacts.org http://openvotingconsortium.org
> I'd give my right arm to be ambidextrous.




More information about the asdf-devel mailing list