[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.
Will
================================================================
DELETIONS from R5RS
- remove transcript-{on,off}
- remove FORCE and DELAY
- remove multiple values
================================================================
INCOMPATIBLE CHANGES to R5RS
- 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
- CASE-LAMBDA
- add COND-EXPAND
- 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
================================================================
EDITORIAL CHANGES
- split language into core and libraries
================================================================
More information about the R6RS
mailing list