As the R7RS is a much less ambitious standard than the R6RS (see Guile and Scheme), it is very easy for Guile to support. As such, Guile is a fully conforming implementation of R7RS, with the exception of the occasional bug and a couple of unimplemented features:
#0=(1 2 3 . #0#)
. Guile’s reader
does not support this syntax currently;
https://bugs.gnu.org/38236.
r6rs-hex-escapes
and
hungry-eol-escapes
(see Incompatibilities with the R6RS), the
r7rs-symbols
reader feature needs to be explicitly enabled.
Guile exposes a procedure in the root module to choose R7RS defaults over Guile’s historical defaults.
Alter Guile’s default settings to better conform to the R7RS.
While Guile’s defaults may evolve over time, the current changes that
this procedure imposes are to add .sls
and .guile.sls
to
the set of supported %load-extensions
, to better support R7RS
conventions. See Load Paths. install-r7rs!
will also enable
the reader options mentioned above.
Finally, note that the --r7rs
command-line argument will call
install-r7rs!
before calling user code. R7RS users probably want
to pass this argument to their Guile.