"Solved" (was: Re: [asdf-devel] (asdf:system-source-directory :uiop) not working after upgrade to 3.0.2.25)

Faré fahree at gmail.com
Tue Oct 22 19:27:23 UTC 2013


On Tue, Oct 22, 2013 at 2:08 PM, Dave Cooper <david.cooper at genworks.com> wrote:
> I "solved" the issue by the following bootstrap procedure:
>
> 1.  compile/load adsf3
> 2. (remhash "uiop" asdf::*preloaded-systems*
> 3. load quicklisp's setup.lisp
>
> Without step (2), the preloaded system of uiop occurs first in
> *system-definition-search-functions*, so the separable project for uiop (in
> my case, in local-projects), never ends up being found, and therefore ends
> up missing from the monofasl (I do suspect that the fact that it silently
> fails to be included in the monofasl can be considered a bug -- this
> probably should throw an error when trying to build the monofasl and
> realizing that the uiop.fasl is not showing up to the party, shouldn't it?)
>
> So is this a use case which should be more directly supported? Does this
> call for an unregister-preloaded-system or some such thing?
>
OK, I understand both what is happening and why I previously failed to
reproduce this failure:

1- I failed to reproduce because I was actually using 3.0.2, which
registers asdf-driver but not uiop, so it wasn't interfering with your
use.

2- The problem is that in *system-definition-search-functions*,
quicklisp puts its things last, after sysdef-preloaded-system-search,
and so the preloaded uiop preempts the one in your local-projects.

I suppose the solution is for search-for-system-definition to treat
sysdef-preloaded-system-search specially and put it at the end of the
search, just like it magically puts find-system-if-being-defined
first. For backward compatibility, we can either remove
sysdef-preloaded-system-search from the
*system-definition-search-functions*, or have it become a no-op, and
have its effect magically at the end of search-for-system-definition
under a different name.

Even easy software is hard.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
If this country is worth saving, it's worth saving at a profit. — H. L. Hunt
This country can only be saved if it can be saved at a profit. — Patri Friedman



More information about the asdf-devel mailing list