[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
R5RS ratification [resend]
[I accidentally sent an incomplete version of this message. -RK]
I would like to offer my draft of R5RS for ratification by the
Scheme authors. The latest version (R4.97RS) is available as
ftp://ftp.nj.nec.com/pub/kelsey/authors.ps.gz
The only substantive change from the previous version is a minor
correction to the formal syntax.
If no one objects, I will make this (and the sources for it) available
as R5RS.
As I stated before, the only changes from R4RS are those that
were agreed upon at the meeting in Palo Alto. These are:
The report is now a superset of the IEEE standard for Scheme:
implementations that conform to the report will also conform to
the standard. This required the following changes:
- The empty list is now required to count as true.
- The classification of features as essential or inessential has
been removed. There are now three classes of built-in procedures:
primitive, library, and optional. The optional procedures are LOAD,
WITH-INPUT-FROM-FILE, WITH-OUTPUT-TO-FILE, TRANSCRIPT-ON,
TRANSCRIPT-OFF, and INTERACTION-ENVIRONMENT, along with the
more-than-two-argument versions of - and /. None of these are in
the IEEE standard.
- Programs are allowed to redefine built-in procedures. Doing so
will not change the behavior of other built-in procedures.
`Port' has been added to the list of disjoint types.
The macro appendix has been removed. High-level macros are now part
of the main body of the report. The rewrite rules for derived
expressions have been replaced with macro definitions. There are no
reserved identifiers.
Multiple-value returns, EVAL, and DYNAMIC-WIND have been added.
Incorporating macros and multiple-value returns required significant
editorial changes to the report, especially in the section on variables
and regions and to the section on program structure.
-Richard