[R6RS] Safe/unsafe mode
William D Clinger
will at ccs.neu.edu
Wed Jul 19 23:37:50 EDT 2006
> I have checked in a new version of safety.txt. Because I wasn't not sure
> whether Will would agree with the changes, I called my version safety2.txt
> and left safety.txt alone.
> I feel that safety.txt puts Proposal 3 in a bad light.
I would rather present proposals in a bad light than
present them inaccurately.
Apart from the two paragraphs that were flagged by
FIXME comments, the accuracy of safety.txt does not
appear to be in dispute.
> In safety2.txt, I
> have reworded the descriptions of Proposal 3 and the examples section to
> describe the proposal in a way that I believe is more even-handed.
That is one way of putting it. "Fuzzier" might
be a better way to say it, inasmuch as formalization
of the formal semantics sketched in safety2.txt
would probably involve the approach described in the
corresponding section of safety.txt.
> Fortunately, safety.txt does not put the other proposals in a bad light,
> so I was able to leave their descriptions alone for the most part, but I
> did mention for them what (I understand) the macro expander must do with
I'm sure those additions were made with the best
of intent, but they are factually incorrect, for
reasons both obvious and subtle. The draft of
safety.txt alludes to one of the subtle reasons,
albeit subtly, and flatly states one of the
more obvious reasons.
> I have also added a couple of additional examples.
Those are helpful. I can't say as much for "illustrating
that safety is a property of the source code in Proposal 3
and of the expanded code in Proposal 2." Surely no one is
so foolish as to think source code means anything absent
its semantics, and the semantics of source code differs in
the two proposals, so I don't understand how anyone could
fail to see that both safety and unsafety are properties
of the source code and its semantics in both proposals.
Here is my best guess as to what you were trying to say:
I think you were trying to say that Proposals 1 and 2 both
involve something analogous to the implicit non-hygiene that
pervades Proposal 3. The difference is that, in Proposals 1
and 2, it is the safe quality that is rebound at declaration
points, not program identifiers as in Proposal 3. I agree
that this is an important difference.
More information about the R6RS