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.
hungry-eol-escapes(see R6RS Incompatibilities), the
r7rs-symbolsreader 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
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.