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? Linkage, because it is a procedure whose domain includes all *future* programs, is naturally a late-bound operation that can pair up any two modules so long as their import/export contracts conform to one another. In addition to being late-bound, linkage should be extensible because we know that managing execution environments with respect to which library revisions are present and which should be used when is an open problem (unlikely, for deep reasons, to ever have a complete solution). 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. -t _______________________________________________ r6rs-discuss mailing list r6rs-discuss@lists.r6rs.org http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss