
Dear Liam,
I am using asdf-system-connections and notice a glitch in its design. As the original author no longer maintains it, I'm try to fix this myself. This system is designed to allow the loading of a connected system (say "A") automatically when two or more dependent systems (say "B" and "C") are loaded. The problem I'm encountering is that when another system (say "D") is defined to depend on B and C, then A is not loaded until after D is done loading, but D may need the definitions in A. asdf-system-connections defines a function load-connected-systems which does the work of loading the connected system definitions, but this is called from a new #'operate :after method which apparently doesn't get called until A is done loading.
If you depend on A rather than merely on B and C, then the obvious solution is to depend on A. Actually, I would go so far as to discourage use of asdf-system-connections, and encourage only explicit dependency on connection systems. IIUC, the hu.dwim team changed their systems this way, at my suggestion.
I am looking for a place from which to call load-connected-systems that will trigger its call as soon as it's able, i.e., immediately once both "B" and "C" are loaded. I'm not familiar with the internals of ASDF and wonder if someone can guide me to a good place to define this.
There is no such place. Even what asdf-system-connections is a bit of a stretch. On @(ASDF3), you could try an after method on make-plan, or something like that, but it will be quite ugly, and will confuse the hell out of the methods that call traverse-action directly, etc. Frankly, the whole idea is bunk. A build system ought to be predictable, reproducible, and minimize surprise. asdf-system-connections, as it stands, is not great in this regards, but at least does not disrupt the internal dependency model of ASDF; it stands on top. Your proposed extension requires subverting basic invariants of ASDF internals. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Many people escape old fairy tales (creationism, homeopathy, monarchy) only to fall into new ones (democracy, socialism, global warmism)...