Re: [gambit-list] Module system ELS20 presentation
John Cowan
(27 Apr 2020 15:38 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Marc Nieper-Wißkirchen
(27 Apr 2020 15:54 UTC)
|
||
Scheme library namespace and library name mapping
Lassi Kortela
(27 Apr 2020 16:03 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Marc Feeley
(27 Apr 2020 16:38 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Peter Bex
(27 Apr 2020 16:14 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Lassi Kortela
(27 Apr 2020 16:27 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Marc Feeley
(27 Apr 2020 16:52 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Lassi Kortela
(27 Apr 2020 17:02 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Matthew Flatt
(27 Apr 2020 17:07 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Marc Feeley
(27 Apr 2020 17:14 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Lassi Kortela
(27 Apr 2020 17:17 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation Lassi Kortela (27 Apr 2020 16:15 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Marc Nieper-Wißkirchen
(27 Apr 2020 16:25 UTC)
|
||
Re: [gambit-list] Module system ELS20 presentation
Lassi Kortela
(27 Apr 2020 16:35 UTC)
|
||
(missing)
|
||
Re: [gambit-list] Module system ELS20 presentation
Lassi Kortela
(27 Apr 2020 19:11 UTC)
|
||
(missing)
|
||
Eiffel
Lassi Kortela
(27 Apr 2020 19:43 UTC)
|
||
(missing)
|
||
Re: [gambit-list] Eiffel
Lassi Kortela
(27 Apr 2020 20:02 UTC)
|
> [+srfi-discuss] Thanks for broadening the audience. Good call. > 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. +1 > Attention should be drawn to > mailto: URLs, which allow people who don't control any conventional URL > to have their own library namespace. I'd advocate focusing on web URLs and only supporting other types if that falls out naturally from the overall design. There are now tens of thousands of hosting sites where anyone can get their own web URLs for free, both conventional GeoCities-style webhosts as well as social sites like GitHub that give everyone a github.com/username. Of course, if a library name part can be a URN (Uniform Resource Name, https://en.wikipedia.org/wiki/Uniform_Resource_Name) that's one way to solve the problem. We can do the same thing we did for Unisig (https://github.com/unisig/unisig) where the default URI scheme is whatever protocol is the most popular way to transfer web pages at any given time (previously http, now https, in the future http/2 or something else). > 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. I'd recommend simply not using any fancy URLs. A simple "foo.com/bar/baz" with lowercase [a-z0-9], dash, slash, and dot ought to be enough for almost everything. I guess we can permit arbitrary URIs (or URNs), and people can them use vertical bars for portability. > Also, a library name starting with an underscore should be reserved > for the Scheme implementation, and have a meaning that depends on > the Scheme implementation. > > By reserved, you mean that it is not to be imported from user code? Gambit has library names beginning with an underscore already. Most of those can be imported from user code, but only if the user knows the code doesn't need to run in other Scheme implementations. > If so, I am fine with it. If not, my objection is that if you get some > code that imports (chibi ...) and you try to run it on some other > implementation, you will probably get an unknown module error. But if > it imports (_foo ...) and your implementation is using that name you > don't know what will happen. Good point. It might make sense to have the "_" alias in the interaction environment only, meaning that source files need to import using the name of the implementation.