The definition of `guard` in R7RS-small

9 views
Skip to first unread message

John Cowan

unread,
Jun 18, 2020, 4:37:14 PM6/18/20
to srfi...@srfi.schemers.org, chibi-...@googlegroups.com, scheme-re...@googlegroups.com
As originally written, `guard` invokes `raise-continuable` when none of the guard clauses is satisfied (which implies that there is no `else` clause).   That is the Right Thing, because it means that whether or not the original raising procedure was `raise` or `raise-continuable`, the `guard`-expression will return control to it.

Unfortunately, erratum #17 changed the prose and the sample definition to use `raise` instead.  The change to the sample definition was correctly undone, but the change to the prose was not.  I have just corrected https://bitbucket.org/cowan/r7rs/src/errata/spec/r7rs.pdf to make the prose say "raise-continuable'

The list of R7RS errata already said that #17 had been undone, so no change needed there.  However, any implementers that copied the definition of `guard` should check to make sure their definition of `guard` invokes raise-continuably rather than raise.  Chibi is definitely wrong, and I'm filing a ticket for it.
Reply all
Reply to author
Forward
0 new messages