<br><br><div class="gmail_quote">On Tue, Jun 29, 2010 at 11:31 PM, Robert Goldman <span dir="ltr"><<a href="mailto:rpgoldman@sift.info">rpgoldman@sift.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im">On 6/29/10 Jun 29 -3:13 PM, Vsevolod Dyomkin wrote:<br>
> Robert,<br>
><br>
> That's why I've started developing this topic of improving version<br>
> support in ASDF (and not elsewhere), because if versions need to stay<br>
> there, they preferably should be only there to adhere to the DRY<br>
> principle, and if they are only there, they need to be supported well :)<br>
><br>
> Yet, I agree with Faré, that it's much easier to perform dependency<br>
> management separately, and, if we go further along this line, completely<br>
> take it out of ASDF and leave ASDF just as a build tool.  Although that<br>
> is highly unlikely to happen :)<br>
><br>
<br>
</div>Here I think I disagree with Fare.  I think a build tool needs to "know"<br>
when dependencies are broken, and having it try to blindly load systems<br>
that are named the same, but that are of the wrong version, seems deeply<br>
undesirable to me.<br>
<br>
To be honest, I don't think it's particularly helpful to think of ASDF<br>
as a "build tool."  I think that, given CL's nature as a dynamic<br>
language, it's more productive to think of ASDF as a tool for loading<br>
software *and maintaining consistency of the lisp image*. </blockquote><div><br>That's what I had also had in mind, when figuring out how to solve dependency conflicts.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

ASDF must<br>
react to changing states of systems within a long-term running lisp<br>
session, which is very different from the much simpler task that must be<br>
performed by make.<br>
<br>
Even taking that into account, I think that it's possible that having<br>
make be only a simple build tool may not be ideal.  I'm sure we've all<br>
had one of those experiences where we thrashed about and lost a bunch of<br>
time because of version skew when building a system through make.  For<br>
that matter, configure is essentially an expert system that tries to<br>
guess, based on various probes, whether version dependencies are<br>
satisfied...<br>
<br>
best,<br>
<font color="#888888">r<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>vsevolod<br>