Aziz wrote:
> In my reply, I meant to say that having a version as part of the
> library specifier is better than having the version number part of the
> library identifier as in (regexp (3 2)) is better than regexp-3.2. My
> motivation is that if you don't specify a versioning scheme in the
> language, people are going to reinvent all sorts of versioning schemes
> in existence for their scheme libraries including regexp-3.2,
> regexp_3.2, regexp-20061109, regexp-3.1b-rc2, and so on and so forth.
> I would rather have a simple way of specifying the required version
> (like a list of exact nonnegative integers) with a single unambiguous
> interpretation over having an ad hoc do-it-yourself version specifier.
Unfortunately, I don't think R6RS really addresses the issue. Or, at
least, it doesn't address it completely enough. For example, R6RS
specifies how libraries are named but says nothing about the relationship
between library names and file names. (It can't, really, since there can
be multiple libraries in one file.) So it's likely we'll still see variety
in the way files are named. Given that, how much does it really help that
library "identifiers" don't have the same problem? (Rhetorical question!)
Robby wrote:
> FWIW, there has been much discussion about these in the context of
> Perl's CPAN and Ruby's GEMs. They have generally settled on a
> versioning Scheme like the one we adopted for PLaneT (unlike PLaneT,
> however, theirs are a kind of "best practice" rather than encouraged or
> enforced by the system).
>
> PLaneT's versioning Scheme is written up in this year's Scheme workshop:
>
> http://scheme2006.cs.uchicago.edu/04-matthews.pdf
Thanks, Robby. Very useful.
Ultimately, though, it added to my list of concerns. :-) For example, the
paper talks about how PLaneT avoids "magic updates" by using a special
link table that remembers the version of a library/module that another
library/module was originally linked to. You wouldn't be able to do
something like that with R6RS because the library selection algorithm is
buried in the implementation. Still, reading about PLaneT helped me form a
clearer picture of what I think might be wrong with R6RS. It will take me
a day or two to get my thoughts down on paper.
Received on Sun Nov 12 2006 - 17:41:40 UTC