From: Thomas Lord <[EMAIL PROTECTED]> Subject: Re: [r6rs-discuss] [Formal] Version reference syntax is overly complex. Date: Thu, 21 Jun 2007 13:26:52 -0700
> Shiro Kawai wrote: > > > > Even in the above scenario, you can still declare > > that you won't support anything before foo-2.3. > > > Yes, you can say that, but it is a crazy thing to say. > > It may be that, at the time you write your program, it > relies on features only found in foo-2.3 but no prior > version. Yet, backporting is a common occurance. > A year from now, someone may release 1.45 which > contains both desirable features that were dropped > in foo-2, plus a backport of the features your program > needs from foo-2.3. Why should it be necessary to > modify the source of your program just to run it with > library version 1.45? I think you worry too much. Of course it depends, but in many cases the minimum version requirement serves as a way to say "I know the library prior to this version is not compatible at this moment, and I have no intention to support the old one for the time being." If the new feature gets backported and there are people desperately want to use the older one, they'll make change and provide the patch. An example. Here's an excerpt of my Gauche.spec file: %package gdbm-%{encoding} Summary: gdbm binding for Gauche Scheme system Group: Development/Languages License: GPL Provides: Gauche-gdbm Requires: gdbm >= 1.8.0, Gauche-%{encoding} I already forgot the details, but I think gdbm changed API in 1.8, and I knew my code wouldn't work with gdbm 1.7.x or before. Now, I haven't checked whether gdbm 1.7.x gets new API, but I bet not. I also knew gdbm 1.8 have already been widely used so requiring >= 1.8 wouldn't be a showstopper for most cases. Is it crazy? Should I open the door for the possibility that gdbm 1.7.x gets a 1.8 compatible API? > In addition to being > late bound and extensible, linkage should be kept > separate from the source files to which it applies > in support of the separate compilability of modules. Actually, I second for this. Plus the extensibility, software nowadays may link components written in many different languages, so you will have to check version consistency outside of r6rs world anyway, whether or not r6rs has its own versioning system. It may be worth to try to design a "right" versioning system that covers not only programs written in r6rs Scheme but other components as well. But that'd better be outside of the scope of r6rs. --shiro _______________________________________________ r6rs-discuss mailing list r6rs-discuss@lists.r6rs.org http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss