[asdf-devel] Bizarre consequences of FIND-SYSTEM in ASDF.

dherring at tentpost.com dherring at tentpost.com
Mon Nov 30 18:56:50 UTC 2009


Robert Goldman wrote:
> Daniel Herring wrote:
>> On Sun, 29 Nov 2009, Robert Goldman wrote:
>>> I'm actually surprised to see that cl-utilities wants to load the swank
>>> asdf definition, too....
>>
>> It was McCLIM that wanted swank (IIRC for a simple IDE).  Cl-utilities
>> requires sb-rotate-byte.
>>
>
> OK, I'm confused.  Why is what we see here unusual?  I'm looking at the
> transcript and what seems to happen is that SG initially causes the
> various and sundry McCLIM sysdefs to be loaded (they are all in
> mcclim.asd), and then asks for the cl-utilities asdf definition to be
> loaded.
>
> From there I don't see anything particularly odd in the transcript.  We
> get CL-UTILITIES, a boatload of CLIM systems, and SWANK.  SWANK is
> imperatively loaded by McCLIM.  The CLIM systems are all defined in
> mcclim.asd, which has been loaded by an SBCL initarg.
>
> So what's weird here?  What's the seemingly-unrelated software that we
> are looking up?  is it esa-mcclim?  I don't know about this because
> esa-mcclim.asd is not in the mcclim release tarball.

Ok.  Cl-utilities only intends to load sb-rotate-byte.  Unfortunately,
FIND-SYSTEM actually has to load ASDF files to find the definition it
needs; by default, it reads each .asd in *asdf-c-r* until it finds the one
it needs.  Many system definitions are declarative; loading them causes
negligible side effects.  However, some asd files are more involved, in
some cases even dumping fasls.

I think Samium was objecting to the registration of unrelated systems as
part of ASDF's FIND-SYSTEM traversal.  To me, the other side effects in
some asd files are a bigger issue.

There would be several benefits if FIND-SYSTEM were to simply PROBE-FILE
for a system definition in each of the configured paths (e.g.
path1/system.asd, path2/system.asd) until one is found.  Better
efficiency, no pollution from unrelated packages, etc.

- Daniel






More information about the asdf-devel mailing list