[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


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,
      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.