[asdf-devel] Fixing asdf-sytem-connections

Faré fahree at gmail.com
Mon Mar 10 01:05:29 UTC 2014


On Sun, Mar 9, 2014 at 12:46 PM, Robert Goldman <rpgoldman at 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



More information about the asdf-devel mailing list