[R6RS] my notes on today's conference call (29 August 2006)
William D Clinger
will at ccs.neu.edu
Tue Aug 29 09:57:51 EDT 2006
August 29 2006 8:00am-10:00am EDT 812-856-3600, PIN 001386#
All present by about 8:06am EDT:
Mike, Will, Kent, Anton, Matthew
0. finalize agenda (1 minute)
move core/library split up
1. action items from 8/24/2006 (5 minutes)
- propose a new procedure to clear the output
not done, but see below
-
- note: reserve last week of August (THIS WEEK) for proofreading
2. Report status (5 minutes)
- items ready for review
<item> <editor> <to be completed by> <done?>
unicode Matthew Aug. 03 done.
quasiquote Kent Aug. 08 done.
letrec* Kent Aug. 08 done.
let-values & let*-values Kent Aug. 08 done.
records Kent Aug. 24 done.
enumerations Will Jul. 12 done.
bytes Will Aug. 03 done.
equal? Will Aug. 01 done.
list-library Anton Aug. 21 done.
case-lambda Anton Aug. 21 done.
when & unless Anton Aug. 08 done.
arithmetic Will Aug. 22 done.
set-car!, set-cdr! Anton Aug. 21 done.
condition-type details Anton Aug. 21
dynamic-wind Kent Aug. 15 done.
read-syntax, syn. forms Matthew Aug. 20 done.
hash tables Anton Aug. 24 done.
safe/unsafe mode Kent Aug. 28
exceptions & conditions Matthew Aug. 03 done.
- items not ready for review
core/library split
eval Kent
I/O Will done.
hash tables Will
syntax-case Kent, Matthew
library system Kent, Matthew
scripts Anton
r5rs compat. library Anton
operational semantics unavailable
3. R6RS release date (10 minutes)
- can we make September 1?
- should we push back by a week or so?
could send draft to steering committee on Friday,
asking them to delay public release until Tuesday
so we can produce a cleaner draft over weekend
4. Core/library split (20 minutes)
- number and size of libraries to be described by R6RS
- size of "mimimal language" presented by document
base library is a base for constructing libraries,
not intended to be all that useful by itself
base library includes:
call-with-current-continuation, dynamic-wind
multiple values, etc
syntax-rules
no i/o at all
no records
- congruence between R6RS document and R6RS libraries
- hierarchies and something like Java's wild card syntax?
Will moved we leave out wild cards; Anton seconded.
Motion carried with no objections.
- do wildcards apply outside of r6rs hierarchy?
- allow single identifier id as a library name to abbreviate (id)?
Kent so moved, Anton seconded.
Motion carried with no objections.
5. S-expression, datum terminology (10 minutes)
- see https://r6rs.scheming.org/node/390
syntactic datum
datum value
by the way, "datums" is a legitimate plural
Noise on line. By the time we could hear each other
again, Matthew was no longer on the line. He returned
later.
6. I/O (20 minutes)
- add clear-output-port ?
eliminates any buffered output that has not been written
(or obtained)
does not affect bytes that have been written to a file
important mainly for bytes output ports
clear-bytes-output-port
no clear-output-port
let's ignore next item
probably should have clear-string-output-port also,
even though it's the same
- add clear-input-port ?
eliminates any buffered input that has not been read
- must open-bytes-output-port copy its argument?
Kent moved it doesn't have to copy; Mike seconded.
Motion passed with no objections.
But it is allowed to copy.
7. Library and syntax-case changes (10 minutes)
- see https://r6rs.scheming.org/node/399
Kent moved that those changes be made; Matthew seconded.
Motion carried with no objections.
This includes flushing indirect-exports.
- also https://r6rs.scheming.org/node/383#comment-1809
(Changing the semantics of "for" so a "for" for
import adds to rather than replaces a "for" for
export.)
Negative meta-levels?
Matthew thinks it complicates things.
Let's not go there.
Changes accepted.
8. Body syntax (10 minutes)
- let-syntax, letrec-syntax again
Should be begin-like everywhere or nowhere.
We have already agreed on everywhere.
(Note that node/399 gets rid of declarations
at the head of a begin.)
- body begin splicing syntax/expansion algorithm
The natural algorithm allows a begin that
includes definitions followed by expressions.
Option A:
as in R5RS
begin definitions, begin declarations, begin expressions
Option B:
allow a begin to contain definitions followed by
expressions, provided the begin is on the
boundary between definitions and expressions
Option C:
at the top level of a library,
treat begin as a splicing construct everywhere
Option D:
at the top level of a library,
treat begin as a splicing construct everywhere
also allow (begin) as an expression, evaluating to
the undefined value
Consensus: B
Might as well allow a begin to contain declarations
followed by definitions, provided the begin is on
the boundary between declarations and expressions.
Could even have a begin that contains all three,
provided there are no other definitions in the
body.
Matthew volunteered to try to fix the formal syntax.
9. adjourned about 9:55am EDT
More information about the R6RS
mailing list