R6RS libraries are versioned. Any package manager/library repository
shouldn't add a second layer of versioning on top of it but understand it.
Thanks Marc! So I'm not the only one in favor of this crazy idea :)
We could start off by propagating the package version into to library
version. In other words, the foo-1.2.3 package would append (1 2 3) to
the name of all libraries in that package. The package manager probably
should not rewrite source files, but should override the library
versions given in the library source files via some kind of manifest
file. For large Scheme codebases we need the ability to have rewrite
rules for library names anyway, so versioning could be folded into the
name rewriting framework.
It's not clear how to replicate this in R7RS library names which cannot
contain a nested list. Maybe just splice the version list:
R6RS: (foo bar baz (1 2 3))
R7RS: (foo bar baz 1 2 3)
But this is prone to have some amusing consequences -- neither of these
looks good:
R6RS: (srfi :123 (1 2 3))
R7RS: (srfi 123 1 2 3)