[asdf-devel] Workaround (was: adsf/bundle:monolithic-fasl sometimes puts dependent system first in list)

Dave Cooper david.cooper at genworks.com
Sat Mar 16 16:15:56 UTC 2013


As you probably are aware, an apparent workaround for this apparent bug is
to make a toplevel "container" system, whose only contents is a :depends-on
which contains the actual desired system (or list of systems).  It seems
that if the toplevel system has no actual file components, then it will not
appear in the (asdf:component-depends-on 'asdf/bundle:monllithic-fasl-op
...)   at all, and subsequently the systems appear in the correct order ---
so the generated monofasl will be usable.

In fact that's why I didn't see the bug initially, because gendl.asd
normally is just such a container system and has no source components (last
night I purposely "broke" it for testing by inclusion of a
"source/try.lisp" at the toplevel -- if you clone the repository now, that
source directory will not be there, and the monofasl for :gendl will work).

I hope this is useful information.



On Fri, Mar 15, 2013 at 7:06 PM, Dave Cooper <david.cooper at genworks.com>wrote:

>
> Try this:
>
> 1.  git clone git://github.com/genworks/gendl.git
>
> 2.  put it in your quicklisp/local-projects/
>
> 3. (ql:register-local-projects)
>
> 4. (ql:quickload :gendl)
>
> 5. (ql:operate 'asdf/bundle:monolithic-fasl-op :gendl)
>
> 6. (first (asdf:output-files 'asdf/bundle:monolithic-fasl-op :gendl))
>
> 7. Copy the yielded pathname string to use in next step.
>
> 8. [in a fresh Lisp] (load <the --all-systems  fasl from step 7>)
>
> 9. [back in first Lisp]:
>
>       (asdf:component-depends-on 'asdf/bundle:monolithic-fasl-op :gendl)
>
> 10. Read it and weep. system :gendl comes _first_ in the list. I feel it
> should come _last_.
>
>
> I tried to look into the asdf code behind this operation but am afraid it
> is currently far over my head.
>
>
>
> --
> My Best,
>
> Dave Cooper, Genworks Support
> david.cooper at genworks.com, dave.genworks.com(skype)
> USA: 248-327-3253(o), 1-248-330-2979(mobile)
> UK: 0191 645 1699
>



-- 
My Best,

Dave Cooper, Genworks Support
david.cooper at genworks.com, dave.genworks.com(skype)
USA: 248-327-3253(o), 1-248-330-2979(mobile)
UK: 0191 645 1699
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20130316/e42887cd/attachment.html>


More information about the asdf-devel mailing list