[gambit-list] R6RS

John Cowan cowan at ccil.org
Sat Dec 21 19:57:14 EST 2019


Not entirely, no.  For example, syntax-case and other macro systems can't
be layered over syntax-rules.   By the same token, the Posix API (SRFI 170)
can't be layered over R7RS-small.  It could be layered over an FFI, but
there are just too many different kinds of FFIs out there.

Here's the current list of non-portable SRFIs and pre-SRFIs that I have
proposed to be voted on:

Conditions: ConditionsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/ConditionsCowan.md>

File I/O: FilesAdvancedCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/FilesAdvancedCowan.md>
 plus SettingsListsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/SettingsListsCowan.md>

Threads: SRFI 18 <http://srfi.schemers.org/srfi-18/srfi-18.html> plus
optional SRFI 21 <http://srfi.schemers.org/srfi-21/srfi-21.html> or
FuturesCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/FuturesCowan.md>
(simplified
with monad)

Sockets: SRFI 106 <http://srfi.schemers.org/srfi-106/srfi-106.html> or
NetworkPortsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/NetworkPortsCowan.md>
 with NetworkEndpointsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/NetworkEndpointsCowan.md>

Datagram channels (UDP sockets): DatagramChannelsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/DatagramChannelsCowan.md>

Timers: SRFI 120 <http://srfi.schemers.org/srfi-120/srfi-120.html>

Mutable environments: EnvironmentsMIT
<https://htmlpreview.github.io/?https://bitbucket.org/cowan/r7rs-wg1-infra/raw/default/EnvironmentsMIT.html>

Host environment (Posix): SRFI 170
<https://htmlpreview.github.io/?https://bitbucket.org/cowan/r7rs-wg1-infra/raw/default/srfi-170.html>

Access to the REPL: ReplCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/ReplCowan.md>

Library declarations: LibraryDeclarationsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/LibraryDeclarationsCowan.md>

Interfaces: InterfacesCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/InterfacesCowan.md>

Process control: ProcessesCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/ProcessesCowan.md>

System commands: SystemCommandCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/SystemCommandCowan.md>

Pure delay/force: PureDelayedGloria
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/PureDelayedGloria.md>

Delimited continuations: Racket
<https://docs.racket-lang.org/reference/cont.html>, Guile
<https://www.gnu.org/software/guile/manual/html_node/Prompt-Primitives.html>
, Scheme48/Kali
<https://github.com/tonyg/kali-scheme/blob/master/scheme/misc/shift-reset.scm>
, Gauche
<https://practical-scheme.net/gauche/man/gauche-refe/Partial-continuations.html>
, Chicken <http://wiki.call-cc.org/eggref/4/F-operator>

Continuation marks: SRFI 157
<http://srfi.schemers.org/srfi-157/srfi-157.html>

Extended exact numbers: SRFI 73
<http://srfi.schemers.org/srfi-73/srfi-73.html> or ExtendedRationalsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/ExtendedRationalsCowan.md>

Adjustable strings: SRFI 118
<http://srfi.schemers.org/srfi-118/srfi-118.html> (basic) or SRFI 140
<http://srfi.schemers.org/srfi-140/srfi-140.html> (mutable/immutable)

Mutexes, condition variables: SRFI 18
<http://srfi.schemers.org/srfi-18/srfi-18.html>

Port type detector: see ticket #177
<https://bitbucket.org/cowan/r7rs-wg1-infra/issues/177/distinguish-file-and-string-ports>

Internationalization of strings: GettextCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/GettextCowan.md>

Chronometers: Chronometer
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/Chronometer.md>

Character-cell terminals: TerminalsCowan
<https://bitbucket.org/cowan/r7rs-wg1-infra/src/4a3907a8b871518b0cf81e08084da6850278175b/TerminalsCowan.md>

Graphics canvas: CanvasCowan <http://smallbasic.com/doc/?id=8&language=>

Comments are extremely welcome.

On Sat, Dec 21, 2019 at 7:24 PM Hendrik Boom <hendrik at topoi.pooq.com> wrote:

> On Sat, Dec 21, 2019 at 11:02:55PM +0200, Lassi Kortela wrote:
> >
> > R6RS is quite a big language and there are already so many good
> > implementations of it that new ones might not have much to add. Same
> > situation as with Common Lisp. R7RS is such a small language that all
> kinds
> > of niche implementations are interesting and useful to explore.
>
> Which is why they split R7RS into a small language and a large language
> that
> I home can be implemented entirely on top of the small langauge.
>
> -- hendrik
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://mailman.iro.umontreal.ca/cgi-bin/mailman/listinfo/gambit-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20191221/04cecf66/attachment.htm>


More information about the Gambit-list mailing list