get-bytes-all
and put-bytes
, which should be get-bytevector-all
and put-bytevector
.
"An object fetched from a location, by a variable reference or by
a procedure such as car
,
vector-ref
, or string-ref
, is
equivalent in the sense of eqv?
(section 11.5)
to the object last stored in the location before the
fetch."
should be amended by:
", except when that object is a procedure. When the object is a procedure, the object fetched from the location will also be a procedure that behaves identically to the procedure last stored in the location, but it is possible that it is not the same object."
"equal, monotonically increasing, monotonically nondecreasing, monotonically decreasing, or monotonically nonincreasing"
fl<
which
should be fl<?
case
is slightly
confusing, as it suggests that 1 is a composite number: It
should be elided from the second branch of the case
.eqv?
on
inexact numbers - both #t
and #f
cases - the phrase
" [...] as a finite composition of Scheme's standard arithmetic procedures."
should be augmented by:
", as long as the evaluation of that application does not involve NaN."
"Furthermore, a constant may be copied at any time by the implementation so as to exist simultaneously in different sets of locations, as noted in section 11.4.1."
eq?
(eq? car car) => #tshould be replaced by
(eq? car car) => unspecified
list-ref
,
"list-tail
" should be replaced by
"list-ref
".string->number
should be replaced
by:
"If the arguments to string->number
are a
string and a valid radix as specified, it must produce a
number object or #f
; it may not raise an
exception."
(I.e., string->number
may raise an exception
if the argument is not a string.)
rationalize
says "returns a the a
number object": the "the" should be elided.The sentence at the end of the entry for append
should be clarified to:
"The return value is made from new pairs for all arguments but the last; the last is merely placed at the end of the new structure."
bytevector-s32-native-set!
,
the interval for n
should be {-231,
..., 231 - 1} instead of {-231, ...,
232 - 1}.bytevector-s64-native-set!
,
the interval for n
should be {-263,
..., 263 - 1} instead of {-263, ...,
264 - 1}.utf16->string
utf32->string
, the argument
endianness-mandatory should be spelled
endianness-mandatory?.
"Each call to a record constructor returns a new record with a fresh location [...]"
should be replaced by:"Each call to a record constructor of a mutable record type returns a new record with a fresh location [...]"
The sentence
If obj1 and obj2
are both records of the same record type, and are the
results of two separate calls to record constructors,
then eqv
? returns
#f
.
If obj1 and obj2
are both records of the same mutable record type, and are the
results of two separate calls to record constructors,
then eqv
? returns
#f
.
fxbit-count
, "ei" should be "fx".fxbit-set?
, fx>=
should be fx>=?
."Note, however, that Waddell's
thesis describes slightly different semantics for
bound-identifier=?
- it specifies that for two identifiers to be
equal in the sense of bound-identifier=?
, they must have the same marks and be equal in
the sense of free-identifier=?
, whereas this report requires
instead that they must have the same marks and have the same name."
include
macro
uses
(open-file-input-port fn)to open the file, which would result in a binary input port. Instead, a textual input port should be opened, for example via:
(open-file-input-port fn (file-options) (buffer-mode block) (native-transcoder))
identifier-syntax
is
incorrect and should be as follows:
(define-syntax identifier-syntax (lambda (x) (syntax-case x (set!) [(_ e) #'(lambda (x) (syntax-case x () [id (identifier? #'id) #'e] [(_ x (... ...)) #'(e x (... ...))]))] [(_ (id exp1) ((set! var val) exp2)) (and (identifier? #'id) (identifier? #'var)) #'(make-variable-transformer (lambda (x) (syntax-case x (set!) [(set! var val) #'exp2] [(id x (... ...)) #'(exp1 x (... ...))] [id (identifier? #'id) #'exp1])))])))
enum-set-projection
.