[R6RS] Safe/unsafe mode

dyb at cs.indiana.edu dyb at cs.indiana.edu
Wed Jul 19 13:43:13 EDT 2006


Thanks for committing the updated safety.txt.

I noticed it contains the following for me to reconsider:

> Furthermore Kent has written that an equivalent of this
> example (bug2) is not required to raise an exception
> under his interpretation of Proposal 3.  [FIXME: He may
> wish to reconsider that.]
>     (let ()
>       (define (my-memq x things)
>         (cond ((null? things) #f)
>               ((eq? x (car things)) things)
>               (else (my-memq x (cdr things)))))
>       (let ()
>         (declare unsafe)
>         (my-memq 1 2 3)))

Assuming there are no other declarations, an exception must be raised. 
This is consistent with what I said earlier about whether an exception
must be raised for for bug2:

  If the procedure value of my-memq was created by a keyword (e.g., define
  or lambda) that was imported from a standard R6RS library and associated
  with safe priority 0, then no, otherwise yes.


More information about the R6RS mailing list