On Mon, Apr 27, 2020 at 11:38:10AM -0400, John Cowan wrote:
An excellent idea for a no-code SRFI that would be easy to write for people who haven't written one before. It should specify both the petname convention and the URL convention. Attention should be drawn to mailto: URLs, which allow people who don't control any conventional URL to have their own library namespace.
Assuming/hoping there will at some point be a registry where one can download r7rs libraries (maybe there already is? snowfort?), I think it can be as simple as suggesting people use their library name as it occurs in the registry as a prefix.
This is lightweight, easy to understand and remember, and not as ugly or fraught with issues like the URI proposal.
For programs, one could use the main binary's name as a prefix. If the binary is going to be installed into PATH under the scheme system's bin directory, that has to be unique already, anyway. And if it's installed somewhere else, it shouldn't cause any problem as long as the search path for binaries matches the search path for libraries (e.g.., first the current working directory, then system paths).
I wonder if it's better to recommend that all URLs be enclosed in vertical bars, which is safe and simple as vertical bars are not valid in URLs unless %-escaped, or to specify that only URLs containing characters from "#[]'(),;" be enclosed, which minimizes the use of vertical bars.
That would be a problem because then you'd need an additional mapping of URL to filesystem location for the module. A colon is not allowed in Windows file names, more than one dot might be a problem in some OSes as well, and slashes can't occur in file names either. There's many more specifal characters:
https://en.wikipedia.org/wiki/Filename#Comparison_of_filename_limitations
So an e-mail address might not work either.
Cheers, Peter