[asdf-devel] Proposal for improved support for versions of systems

Faré fahree at gmail.com
Tue Jun 29 21:47:36 UTC 2010

On 29 June 2010 16:31, Robert Goldman <rpgoldman at sift.info> wrote:
> Here I think I disagree with Fare.  I think a build tool needs to "know"
> when dependencies are broken, and having it try to blindly load systems
> that are named the same, but that are of the wrong version, seems deeply
> undesirable to me.
I don't think we really disagree all that much.
It's good that ASDF should check that systems being used are indeed
compatible. But it doesn't and shouldn't try to resolve compatibility
constraints amongst a pool of available systems. It picks the one and
only configured system with a given name and checks that it's indeed
the expected version. If the constraint language is made richer, it
will be nice if ASDF can keep doing checking. But I think it's a very
bad design to ever try to add the constraint resolution in ASDF

> To be honest, I don't think it's particularly helpful to think of ASDF
> as a "build tool."  I think that, given CL's nature as a dynamic
> language, it's more productive to think of ASDF as a tool for loading
> software *and maintaining consistency of the lisp image*.  ASDF must
> react to changing states of systems within a long-term running lisp
> session, which is very different from the much simpler task that must be
> performed by make.
If only... Unhappily, my experience with making ASDF itself upgradable
has taught me that CL is very ill-suited to code upgrade, and that
there's no easy reliable modification you can make to the image
besides adding new code. So no real "change of state", only

> Even taking that into account, I think that it's possible that having
> make be only a simple build tool may not be ideal.  I'm sure we've all
> had one of those experiences where we thrashed about and lost a bunch of
> time because of version skew when building a system through make.  For
> that matter, configure is essentially an expert system that tries to
> guess, based on various probes, whether version dependencies are
> satisfied...
dpkg can do much more than that. It can actually do the NP-complete
constraint solving.

He who says he will die for a cause will probably lie for it and may kill
for it.  — John McCarthy

More information about the asdf-devel mailing list