[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

R5RS ratification




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.






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.