[R6RS] categorization of goals

William D Clinger will
Wed Mar 3 22:30:39 EST 2004

Here is Mike's list of issues as of 27 Feb, divided into the
following categories:

    deletions of R5RS Scheme features
    incompatible changes to R5RS Scheme
    extensions that could be entirely compatible with R5RS Scheme
        but would break some implementation-specific extensions
        but would be controversial and aren't worth it
        that are controversial or difficult but necessary
        that are probably uncontroversial

Obviously the four-way division of extensions is a judgment call,
so that part is just my opinion.  I will try to explain some of
those opinions in a separate message.



- remove transcript-{on,off}

- remove FORCE and DELAY

- remove multiple values


- make syntax case-sensitive

EXTENSIONS that would break implementation-specific extensions

- specify evaluation order

- support for processes

- support for network programming

- object-oriented programming

- external representation for records

- serialization

EXTENSIONS to R5RS (controversial and probably unnecessary)

- pattern matching / destructuring

- abstract data type for continuations

- support composable continuations

- add box types

- uninterned symbols
  vs. Chez's globally unique names

- extended symbol syntax

- add LETREC*, define internal DEFINE in terms of it

- optional and keyword arguments as in DSSSL

EXTENSIONS to R5RS (controversial or difficult but necessary)

- module system

- non-hygienic macros

- records

- mechanism for new primitive types

- Unicode support

- errors and exceptions

- require mode where "it is an error" means "an error is signalled"

EXTENSIONS to R5RS (probably not terribly controversial)

- multiline comments

- external representation for circular structures

- #!eof

- more escape characters

- require that #f, #t, and characters be followed by a delimiter



- allow the name of the macro being defined in SYNTAX-RULES to be
  arbitrary (or _)

- allow continuations created by begin to accept any number of values

- tighten up specification of EQ? and EQV? (or otherwise address their
  portability problems)

- tighten up specification of inexact arithmetic

- add +0, -0, +inf, -inf, +nan

- add bitwise operations on exact integers

- SRFI 4 homogeneous numeric vectors

- specify dynamic environment

- operations on files

- binary I/O
  or: new I/O subsystem entirely

- string code

- regular expressions

- command-line parsing

- hash tables

- library for dates

- system operations


- split language into core and libraries


More information about the R6RS mailing list