[asdf-devel] In defense of ASDF & Semantic versioning

Faré fahree at gmail.com
Wed Nov 20 19:21:20 UTC 2013

On Wed, Nov 20, 2013 at 12:54 PM, Pascal Costanza <pc at p-cos.net> wrote:
> Just to chime in in the middle: There is no known solution to the so-called
> "DLL hell" problem.
Yes there is.

> Libraries interact badly because of their interactions,
> not because one or the other is "bad." Even with the best of intentions, a
> library author cannot predict what changes will break existing clients and
> what changes won't, because that author doesn't know about all possible
> interactions. When APIs change, telling clients that they are now
> incompatible may be a lie, because they may not depend on the specific
> change. (For example, is the addition of a keyword argument an incompatible
> change or not? It may, or it may not be...)
> You are basically trying to solve the halting problem for a program where
> you don't know significant parts of the program. ;)
Good analogy.

> There is a field of research about component-oriented programming where this
> was a hot topic for quite some time, and nothing ever came out of it. The
> only practical working solution was that of Microsoft COM, where you need to
> change a GUID when APIs change, and since it's a black box model, that
> covers a lot of ground. Common Lisp libraries are definitely not black box,
> so even this solution will probably not work that well. (Changing the name
> of the library or the system definition, as Vsevolod suggests, would be
> similar.)
> If you want to give control to developers, you could provide a way that
> depends-on specifications are list designators, with some form of
> declarative way of precisely specifying which versions are compatible and
> which aren't. (Then you could describe situations like, compatible with
> everything up to and including 0.9.x, and everything above 1.0.0, but
> excluding 1.0.0 - a situation that actually occurred when Closer to MOP was
> incompatible with SBCL 1.0.0 for a brief moment in history... ;)
I didn't see any response to my proposal of letting libraries declare
how far backward compatible they purport to be.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
A politician divides mankind into two classes: tools and enemies. — Nietzsche

More information about the asdf-devel mailing list