Below, I respond to what y'all might be wondering about now, so you can think about it for later when we repeat this discussion in the draft's mailing list. Please save further comments for the draft's mailing list. Thank you.
On Tue, 2009-09-08 at 03:14 +0300, Abdulaziz Ghuloum wrote: > [redirecting to ikarus-users] > > On Sep 8, 2009, at 2:43 AM, Derick Eddington wrote: > > > If/when they accept it, as a draft at the SRFI website. If you want > > to > > look at it now, it's revision 27 at > > https://code.launchpad.net/~derick-eddington/+junk/library-files > > So, on the one hand, you say: > If a library's name includes a version then its file name must > include the version. > > Then you say: > A file without a version matches a library reference regardless > of its version reference > > I object to the first rule. I think a library should be allowed > to have a version even if its file name does not have a version. > Why? I always put (foo) in foo.sls. Here are the reasons the file naming design is how it is: * To support multiple versions of a library having their files in the same directory. To do that, versions in the file names are required. * To support mapping file names to library names. To do that, versions in file names are required. I see this ability as useful for managing library files because all that's needed is the file name and the actual file is not needed. * To support finding library files by only their file names and without needing to read the files to check their versions. To do that, versions in file names are required. (Of course, Scheme systems should check the library forms' versions are correct once the files are chosen and read.) I see this ability as useful for managing library files because all that's needed is the file name and the actual file is not needed. * To support having an implementation of a library without a version always match a library reference regardless of the reference's version reference. The rationale for this is that because the library doesn't have a version it's not concerned with versioning, and so it should always match a reference to the library. This is symmetrical with R6RS specifying that a library reference without a version reference will match a library with a version, and I see it as a desirable ability for the similar reason. To fit with the above other points, this requires that only libraries without versions can not have versions in their file names. * To support all the above points with a single uniform naming rule. > I don't want to rename the > file every time I change the version. If you insist on making > R6RS library versions more difficult, then I won't use them. But how often do versions change? Other systems we all use have versions in their file names and require new-version renaming. I agree it's a small inconvenience once in a while, but I want the design to have all the points I listed above. > Oh! Thanks! Never mind then. :-) The design is intended to also support users who don't want to use versioning. > I still think you should've drafted the SRFI without mention of > versions, or just put versions is the Issues section and let > some bright person solve it for the rest of us. The ordering I specified for sets of matching files leaves it to Scheme systems to solve the rest of the versioning problem the particular way they need to, which is as good as I think it can get. -- : Derick ----------------------------------------------------------------
