ASDF has a poorly-defined versioning system.
I thought the following link may be of general interest. http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/
There sure are many ways to mess this up. I'm not convinced there are any ways to not mess it up.
Related links http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html http://stackoverflow.com/questions/663209/can-someone-explain-about-linux-li... http://www.linux.com/archive/feature/45507?theme=print
Given the way ASDF is used today and the rapidly changing ABI of many CL implementations, binary compatibility is a nonexistant issue. Today's CL cares rather about compile-time compatibility.
Either way, I almost think the correct solution is to say - each library release will have a unique version number - each library release will have a list of old version numbers for which it is upwards compatible - each dependent library or application will list which versions it was developed for - the "linker" (require or asdf) selects the newest version compatible with the version specified by the dependent
This is similar to the libtool scheme, but using general data structures rather than trying to encode everything into the filename. How would asdf respond to two files named X.asd? It doesn't scan all such files looking for the most recent version, does it?
(end rambling) - Daniel