[r6rs-discuss] [Formal] nothing is said to be safe

William D Clinger will at ccs.neu.edu
Thu Jan 25 16:07:11 EST 2007

John Cowan quoting me:

> > If the report requires all programs to be safe, then
> > R6RS-conforming implementations will be forbidden to
> > execute programs that link with libraries written in
> > unsafe languages such as C, C++, and assembly language.
> Such programs are not conformant to R6RS; that is, you cannot
> transport them to every conformant implementation.  That is
> not to say that implementations should disallow them.

That would be the sensible interpretation, but it is
not what 5.92 says.  As for the change that Mike said
he had made to correct section 4.5, let us suppose
that the changed language were to read something like

    As defined by this document, the Scheme programming
    language is safe in the following sense:  The execution
    of a Scheme program cannot go so badly wrong as to crash
    or to continue to execute while behaving in ways that are
    inconsistent with the semantics described in this document,
    unless said execution first encounters some implementation
    restriction or other defect in the implementation of Scheme
    that is executing the program.

That language would imply that no Scheme program could
link with unsafe libraries.  Another way of putting it
is that the act of linking with unsafe libraries would
prevent a program from being a Scheme program.

If that were to become the definition of Scheme programs,
it would be accurate to say that Scheme programs cannot
interoperate with C and C++.

If that were to become the definition of Scheme programs,
then I would not have much interest in Scheme programs,
and I would certainly not bother to implement the Scheme
language, as so defined.


More information about the r6rs-discuss mailing list