ERR5RS:A Concrete and Conservative Proposal
From SchemePunks
[edit] The Proposal
- the core will be a superset of R[45]RS
- we need to decide whether we want to base our language on R4RS or R5RS
- add modules/libraries
- add first class (compound) data types (a.k.a. records)
- would be needed to add new data types as libraries
- needs to have hooks to control EQV?, EQUAL?, WRITE, and DISPLAY behavior of new data types, as well as some FOR-EACH-SLOT construct for hashing. -Aubrey Jaffer
- add byte vectors as primitive data type
- add fundamental operations on bytevectors, such as:
byte-vector-ref,bytevector-set!,byte-vector-copy,byte-vector-fill!(orthogonal tovector-...) - definitely add
byte-vector-readandbyte-vector-write - maybe add
byte-subvector(analogous to substring)
- add fundamental operations on bytevectors, such as:
- or add srfi-63 homogeneous and heterogeneous multidimensional arrays as primitive data types, subsuming byte-vectors; and srfi-58 array notation (lexical syntax) -Aubrey Jaffer
- add reader macros, so that notations like
'fooor`,barcan be generalized- reader macros should be able to control disjoint subsets of # syntax. -Aubrey Jaffer
- extend the range and domain of
char->integerandinteger->charto integer- required to add support for character sets beyond ASCII
- maybe add a foreign function interface (FFI)
- perhaps add low-level macros (explicit renaming?) so syntax-case, syntax-rules and syntactic closures can be provided as libraries, keeping the core clean. This seems very much in the spirit of scheme, since people can now experiment with developing new macro systems in a portable way. Sjamaan 05:46, 13 September 2007 (PDT)
[edit] Practical Aspects
We should start experimenting soon, so we will need
- an implementation to play with (obviously)
- the implementation should be complete but simple
- the implementation should build quickly
- a test suite that makes sure that we do not break R[45]RS or SICP
- there is an R4RS test suite
- is there an R5RS test suite?
- is the code from SICP available in machine-readable form?
- Answer: yes, but it includes code fragments that aren't loadable into Scheme, so some editing would be needed. [1]
- are there any legal issues?
- Note: unless someone else is eager to do this, I plan to take the lead on it (at least for a while); it's something concrete I can do for the next 12 months or so, and I've done test suites before in several jobs. I'll move this text on the details of it to a new page in due course. Hga 02:29, 31 August 2007 (PDT)

