Skip to content
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

Toward R7RS-large #3

Open
amirouche opened this issue Nov 4, 2019 · 8 comments
Open

Toward R7RS-large #3

amirouche opened this issue Nov 4, 2019 · 8 comments

Comments

@amirouche
Copy link

amirouche commented Nov 4, 2019

R7RS-small is part of Gambit repository in lib/scheme directory.

Here is the R7RS-large libraries:

R7RS SRFI Code Tests Doc Review Comment
scheme bitwise 151
scheme box 111
scheme bytevector R6RS bytevectors
scheme charset 14 ✔️
scheme comparator 128
scheme division 141
scheme ephemeron 124
scheme fixnum 143
scheme flonum 144
scheme generator 158
scheme hash-table 125
scheme idque 134
scheme ilist 116
scheme list-queue 117
scheme list 1
scheme lseq 127
scheme mapping 146
scheme mapping hash 146
scheme regex 115
scheme rlist 101
scheme set 113
scheme show 159 still draft
scheme sort 132 ✔️ ✔️ ✔️ ✔️ part of gambit
scheme stream 41
scheme text 135
scheme vector @ 160
scheme vector 133
@lassik
Copy link
Collaborator

lassik commented Nov 4, 2019

* scheme bytevector: rnrs bytevectors:

Is this the R6RS bytevector library?

@amirouche
Copy link
Author

amirouche commented Nov 4, 2019 via email

@lassik
Copy link
Collaborator

lassik commented Nov 4, 2019

@amirouche Do you know whether some of those R7RS-large libraries are more stable than others (API-wise)? I'm not familiar with -large yet. If some of the APIs still change a lot, we could start with the more stable ones.

@amirouche
Copy link
Author

amirouche commented Nov 4, 2019 via email

@lassik
Copy link
Collaborator

lassik commented Nov 4, 2019

All of that is very useful info - thanks! The arew doc approach sounds good.

I guess there is no harm in including even the less stable libraries, if someone is willing to do that work :) Perhaps they should be left out of base Gambit and be an optional add-on library. Perhaps in a separate github.com/gambit/r7rs-large repo?

@amirouche
Copy link
Author

amirouche commented Nov 4, 2019 via email

@lassik
Copy link
Collaborator

lassik commented Nov 10, 2019

  1. put R7RS libraries (scheme fu) in this repo, along SRFIs. And provide a deprecation mechanism?

I would vote for this option :) Since R7RS-large is clearly defined as its own separate entity, developed according to its own schedule, it's clearest if it has its own separate repo.

The finalized SRFIs that are part of R7RS-large, but also useful in themselves, could be included in Gambit's main repo if @feeley thinks they are useful enough; otherwise as add-ons? If they have both (srfi nnn) and (scheme aaa) import names, the (srfi nnn) ones could be in Gambit's main repo; the R7RS-large repo could provide the (scheme aaa) aliases for them. Opinions?

Also SRFI-145 (https://srfi.schemers.org/srfi-145/ aka. assume) is used in several SRFI but is not part of R7RS-large.

If it's easy to add to Gambit, we could add it to this libs repo right away.

@lassik
Copy link
Collaborator

lassik commented Nov 10, 2019

The list of SRFIs in the README of this libs repo is just a suggestion for starting with the most popular ones; if others are useful, why not have those as well.

FWIW, Chicken implements a ton of SRFIs (perhaps more than any other Scheme implementation) but most of them are optional add-ons ("eggs"). The core has only a few essentials such as hash-tables.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants