-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gambit vs scheme libs #23
Comments
If new Gambit-specific libraries are started, it would be easiest to understand if they are named |
I've been wavering on this issue and still do not know what is the best approach. There is a tension between what is convenient for "Gambit users" and "Scheme community users" (that would like to share code with Gambit users bidirectionally). Here are some of my concerns:
I guess it is a question of managing the namespace of R7RS libraries. Currently So for the moment Gambit is using builtin modules with names containing a |
There is already a strong convention that Is |
All of these currently work in the respective Schemes:
I stopped looking at this point - there are probably more :) I'm encouraging Arthur to start a formal registry of "Scheme IDs" - identifiers naming implementations. Here's the collection so far, based on |
So the most promising approach right now would be to extend the standard library namespace by formally recognizing those implementation IDs in addition to |
OK... let's give it a try with a |
Great, thanks! |
If you're versioning Gambit's native libraries, you could make the Perhaps there should be a standard alias like |
The Gambit REPL incidentally auto-completes |
Now I remember another important concern with the longer names that include the system name... it makes it awkward to use the builtin module names on the command-line. Currently this is possible to run all the unit tests in the program
Note that it works by loading the builtin module It is much more convenient than:
The If '_' when used as a prefix of the module name meant "the current Scheme system" then the two command-lines would be equivalent. |
This could also be viewed as a load path thing. If both However, perhaps it's too surprising if |
The problem is deeper than that, because the name |
We can already use load path tricks by setting the load path to anything we like. But I agree that it can be very confusing and probably isn't wise for implementations to do it by default. |
ASCII doesn't offer too many promising single-character choices for a name.
What's left is |
And |
Load path tricks (although possible) should not be proper solution to anything... The
|
Does |
Yes... so in fact |
The thing is that the library name |
So maybe the thing to do is (at the Scheme community level) reserve all library names starting with |
Would If people want to use modules from a directory called |
Well, if |
OK, that will work if we reserve all identifiers beginning with If the library system has a general way to make identifier prefixes, that could be useful in big systems. For example, a Perhaps it would be useful to work out renaming semantics that cover the needs of all implementations, and write a SRFI about it. The RnRS import |
I have an idea for a completely portable |
Here's the current set of libraries planned for R7RS-large (in addition to the R7RS-small ones):
(scheme bitwise)
(scheme box)
(scheme bytevector)
(scheme charset)
(scheme comparator)
(scheme division)
(scheme ephemeron)
(scheme fixnum)
(scheme flonum)
(scheme generator)
(scheme hash-table)
(scheme idque)
(scheme ilist)
(scheme list)
(scheme list-queue)
(scheme lseq)
(scheme mapping)
(scheme regex)
(scheme rlist)
(scheme set)
(scheme show)
(scheme sort)
(scheme stream)
(scheme text)
(scheme vector)
@feeley You mentioned Gambit should get a
_list
module that is a superset of(scheme list)
also known as SRFI 1. Are there others on the list you would like to extend with Gambit-only procedures?The text was updated successfully, but these errors were encountered: