[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