
On Sun, Mar 9, 2014 at 12:46 PM, Robert Goldman <rpgoldman@sift.net> wrote:
Wouldn't it be sufficient to:
1. Weakly depend upon the cl-unicode system. This will load the cl-unicode system if available, but ignore it (instead of failing the load) if cl-unicode is not present.
That would work. I also would have liked to deprecate weakly-depends-on, for the same reasons, but didn't try hard. Not my problem anymore.
2. Detect the successful load or failure downstream in a file-component that adds the degree symbol. Something like
(:component "turn-on-unicode-symbols" :if-feature :cl-unicode)
Won't work, because the plan is computed before the system is loaded.
I note that this conflicts with Faré's advice in the current manual, which is to use asdf-system-connections *in place of* weakly-depends-on. I am removing that advice, given that A-S-C is deprecated.
I would deprecate both.
Question for Faré: you say that weakly-depends-on is not deterministic, and that it's effects depend on load order. Off-hand, I don't see this.
weakly-depends-on should be deterministic in a given installation, so there's that. Load order effects happen only if some crazy extension makes new systems appear. However, weakly-depends-on isn't deterministic from one machine to the next, which makes reproducing bugs harder. I never liked it. I much prefer explicit connection systems A+B.asd
If I have a system A that weakly-depends-on B, and then a component, as above, that uses if-feature, where does the order-dependence arise? Indeed, w-d-o seems more deterministic than A-S-C, because the latter tries to load if B is already loaded -- and NOT try to load B if it's not there. That means that A-S-C is more procedural (depending on global state) and less declarative than W-D-O, not less.
Or I'm missing something about the semantics.
if-feature shouldn't be used for features that are not present at the very beginning of the build. Otherwise w-d-o is cleaner than a-s-c, but still less nice than I like it. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The War on Terrorism is missing the point: what we need is a War on War! — Kennita Watson