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