[R6RS] Library / filesystem mapping

R. Kent Dybvig dyb at cs.indiana.edu
Sat May 19 09:38:03 EDT 2007

> > I'd question whether version numbers should even
> > be represented as directories.  The most recent
> > version of library (rnrs foo) could be in
> > .../rnrs/foo.slf with the version number in its
> > source code, and older versions could have names
> > like .../rnrs/foo.6.5.4.slf .
> This keeps the version number last without creating purely numeric 
> filenames, and also eliminates at least one layer of directory 
> hierarchy.  You'd have "rnrs/io/simple.6.sls".  Multiple versions of the 
> same library could reside in the same directory.  Does anyone object to 
> this approach?

In this approach, I'd prefer that the version number be in the filename
even for the most recent version so we don't have to treat it as a special
case and have to invent some new protocol for representing version numbers
in the files.

The most recent version foo.<version>.sls could always be copied (or
linked) to foo.sls so that the implementation wouldn't have to search for
the latest version, except of course when the relational version number
operators are used.

One more thing: we may want the actual pathname for, e.g., (x y z (a b))
to be:


That is, have the last library name component appear both as the last
directory name in the path and as the filename root.  This is to give
different paths to (foo bar (3 4)) and (foo bar.3 (4)).  Of course, we
could instead discourage people from using numeric extensions like .3 on
their library names.


More information about the R6RS mailing list