[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fixing null-environment and scheme-report-environment
Date: Tue, 17 Feb 1998 17:00:04 -0500
From: Richard Kelsey <firstname.lastname@example.org>
From: Kent Pitman <email@example.com>
Date: Tue, 17 Feb 98 15:48:50 EST
Further, the phrase "only the set of bindings specified in the
corresponding report that the implementation supports" has two
parses, at least one of which is NOT what you want and needs to
be fixed in any case. (It appears to say that you are allowed
to support only a subset and that this will magically reveal the
You are allowed to support only a subset. Some of the bindings
are optional, and an implementation may or may not support them.
The intent is that SCHEME-REPORT-ENVIRONMENT include all of the
required bindings plus whichever of the optional bindings the
implementation supports, and nothing else.
SCHEME-REPORT-ENVIRONMENT returns a specifier for an environment
that contains the required bindings defined in the specified report,
all of the optional bindings from that report that the implementation
supports, and no others.
NULL-ENVIRONMENT returns a specifier for an environment that contains
the (syntactic) bindings for the required syntactic keywords defined
in the specified report, the (syntactic) bindings for all optional
keywords from that report that the implementation supports, and no
To the extent that this issue is separable from the other I raised (which
I think is "only somewhat") this is better.
But I still think the reference to 'the specified report' makes the
whole thing a mess because of the out-of-bound attempt to say what
other implementations will do. I would still prefer the wording that
did not refer to 'the specified report' and instead referred only to
'this report'. Let other reports speak for themselves.
Was there a problem with my proposed alternate style? Is there a reason
that mentioning the behavior in other implementations we don't control is
important to do?
I counterpropose (incorporating my understanding of your fix from above):
(scheme-report-environment _version_) procedure
(null-environment _version_) procedure
_Version_ must be the exact non-negative integer _k_ (i.e., 5) corresponding
to this revision of the Revised^k Report on Scheme.
SCHEME-REPORT-ENVIRONMENT returns a specifier for an environment that
is empty except for all bindings defined in this report that are either
required or both optional and supported by the implementation.
NULL-ENVIRONMENT returns a specifier for an environment that is empty
except for the (syntactic) bindings for all syntactic keywords
defined in this report that are either required or both optional and
supported by the implementation.
Whether or not other values of _version_ are supported in any implementation
conforming to this report is implementation-defined. An error is signalled
if an argument is given that is neither the revision number of this report
(i.e., 5) nor some other value defined by the implementation.