<div dir="ltr"><br><div>Hi Robert,</div><div><br></div><div>Yes, sure that you have to dig into this issue for a while for came up with a good solution, this is not a trivial problem. Moreover, Quicklisp way to distribute systems would be another difficulty, right? Quicklisp does not deal with versions; the systems are packed in distributions.</div><div><br></div><div>Best,</div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div>Alexandre Rademaker<br><div><div><a href="http://arademaker.github.com/" style="color:rgb(17,85,204)" target="_blank">http://arademaker.github.com/</a><br></div></div><div><a href="http://researcher.ibm.com/person/br-alexrad" style="color:rgb(17,85,204)" target="_blank">http://researcher.ibm.com/person/br-alexrad</a><br></div><div><br></div></div></div></div></div>
<br><div class="gmail_quote">On Wed, Mar 16, 2016 at 9:06 PM, Robert Goldman <span dir="ltr"><<a href="mailto:rpgoldman@sift.net" target="_blank">rpgoldman@sift.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 3/16/16 Mar 16 -6:52 PM, Alexandre Rademaker wrote:<br>
><br>
> <a href="https://common-lisp.net/project/asdf/asdf.html#Version-specifiers" rel="noreferrer" target="_blank">https://common-lisp.net/project/asdf/asdf.html#Version-specifiers</a><br>
><br>
> So I can say that my system depends on a (:version :OTHER "x.y.z") which<br>
> means a version >= x.y.z. Can I say explicit enforce a dependency of a<br>
> particular version ? That is version equal of x.y.z instead of<br>
> greater-than-or-equal x.y.z?<br>
><br>
> Best,<br>
><br>
> Alexandre Rademaker<br>
> <a href="http://arademaker.github.com/" rel="noreferrer" target="_blank">http://arademaker.github.com/</a><br>
><br>
<br>
</div></div>No, I am afraid you cannot do that yet.  I have long wanted to add<br>
version upper bounds.  This would be very useful for cases where one<br>
knows that a library has changed its API, but you have not yet adapted<br>
your system to the changed API.  [Think of all of those systems that<br>
still must be compiled with old GCC, or that use Python 2, instead of 3,<br>
etc.]<br>
<br>
The semantics might require a little thought.  If we have<br>
(:version<= :other "x"), is that satisfied by "x.1"?  I think probably<br>
so -- we'd want this to be violated only by x+1, but of course<br>
(:version<= :other "x.0") should be violated by "x.1".  This is in<br>
spirit the same as the way the current version-satisfies works, but<br>
arithmetically slightly different.<br>
<br>
Similarly, do we want :version<= or do we want<br>
(:version :other <lower> [<upper>])<br>
perhaps<br>
(:version<= :other "x.y")<br>
should be syntactic sugar for<br>
(:version :other "0" "x.y")<br>
<br>
[If you publish a library with a version that's less than zero you<br>
deserve whatever bad thing happens to you!]<br>
<br>
I would be happy to accept a patch, but otherwise you'll have to wait<br>
for me to get around to it.  Sadly, I'm badly blocked now, because I<br>
don't have a dedicated ASDF machine, and my current ASDF test machine<br>
for linux and windows is being chewed up running over a hundred hours of<br>
experiments; I can't predict when I will be able to run the linux and<br>
windows tests and release 3.1.7.  In the worst case not until mid to<br>
late April.  This isn't ideal, but my company owns the machine, and the<br>
work I do for them has to come first.<br>
<br>
Best,<br>
R<br>
<br>
<br>
</blockquote></div><br></div>