R6RS Errata

Revised6 Report on the Algorithmic Language Scheme

§ 1.13
The example code is missing a call to close-port, and should be:
#!r6rs
(import (rnrs base)
        (rnrs io ports)
        (rnrs programs))
(let ((p (standard-output-port)))
  (put-bytevector p
                  (call-with-port
                      (open-file-input-port
                        (cadr (command-line)))
                    get-bytevector-all))
  (close-port p))
§ 4
The term "read syntax" mentioned in the introduction of the chapter should be "datum syntax".
§ 4.1
The sentence:

"Some non-terminal names refer to the Unicode scalar values of the same name: <character tabulation> (U+0009), <linefeed> (U+000A), <carriage return> (U+000D), <line tabulation> (U+000B), <form feed> (U+000C), <carriage return> (U+000D), <space> (U+0020), <next line> (U+0085), <line separator> (U+2028), and <paragraph separator> (U+2029)."

contains a duplicate "<carriage return> (U+000D)", which should be elided.
§ 4.2.1
The rule

<decimal 10> -> <digit 10>+ . <suffix>

is redundant.
In the production for <string element>, the two occurrences of <intraline whitespace> should have a * after them.
§ 4.2.1, § 4.2.8
The rules for <number> suggest that the lexical syntax for the external representations of number objects is case-sensitive, with a number of specific exceptions, while the first apragraph of § 4.2.8 claims that case is not significant in external representations of number objects. This should be resolved by making case generally insignificant in the external representation of number objects.
§ 4.2.6
The sentence

"Case is significant in #\<character>, and in #\<character name>, but not in #\x<hex scalar #value>." is worded confusingly.

It should be

"Case is significant in #\<character>, and in #\<character name>, but not the in the <hex scalar #value> part of #\x<hex scalar #value>."

§ 4.2.8
The following sentence should be added:

"The -nan.0 literal also represents a NaN."

§ 7.3
The (stack) example library is missing an import of (rnrs mutable-pairs).
§ 11.7.4
The two examples for < and > on infinities have extra parentheses.
The examples for min and max involving infinities should be prefixed by:

"For any real number object x that is not a NaN:"

The respectively second templates for / and - should have parameter lists z1 z2 z3 ... respectively.
The example:
(imag-part 1.1+2.2i) =>  2.2i ; approximately
should be replaced by:
(imag-part 1.1+2.2i) =>  2.2 ; approximately
§ 11.17
Two of the examples involve calls to sqrt for which Scheme implementations are allowed to return either exact or inexact results, which makes the examples potentially confusing.
§ 11.19
The last example in this section:
p => (15 5)
should be:
p => (15 . 5)
§ D
The example is missing the following line at the end:
(close-output-port (current-output-port))

Standard Libraries

§ 2.4
The sentence

"The length of bytevector or, respectively, of list must be divisible by size."

should be replaced by

"The length of bytevector must be divisible by size."

§ 2.9
The sentence in the specification of utf16->string

"Bytevector is decoded according to UTF-16BE or UTF-16LE:"

should be replaced by

"Bytevector is decoded according to UTF-16, UTF-16BE, UTF-16LE, or a fourth encoding scheme that differs from all three of those as follows:"

The sentence in the specification of utf32->string

"Bytevector is decoded according to UTF-32BE or UTF-32LE:"

should be replaced by

"Bytevector is decoded according to UTF-32, UTF-32BE, UTF-32LE, or a fourth encoding scheme that differs from all three of those as follows:"

§ 4
The example for the call to vector-sort! is incorrect; it should be:
(define v (vector 3 5 2 1))
(vector-sort! < v) => unspecified
v => #(1 2 3 5)
§ 6.3
The sentence

"If rtd is a base record type and protocol is a procedure, parent-constructor-descriptor must be #f."

should be replaced by:

"If rtd is a base record type parent-constructor-descriptor must be #f."

The sentence:

"If rtd is an extension of another record type, and parent-constructor-descriptor or the protocol of parent-constructor-descriptor is #f, protocol must lso be #f, and a default constructor descriptor as described above is also assumed."

should be replaced by:

"If rtd is an extension of another record type and parent-constructor-descriptor is #f, parent-constructor-descriptor is treated as if it were a constructor descriptor for the parent rtd of rtd with a default protocol."

The examples for calls to make-point/abs and an example for cpoint-rgb are missing trailing parentheses, and should go like this:
(point-x (make-point/abs -1 -2)) => 1
(point-y (make-point/abs -1 -2)) => 2
...
(cpoint-rgb (make-cpoint -1 -3 'red)) => (rgb . red)
§ 7.1
The second example for raise is missing a parenthesis after make-violationand should go like this:
(guard (con
         ((error? con)
          (if (message-condition? con)
              (display (condition-message con))
              (display "an error has occurred"))
          'error))
  (raise
    (condition
      (make-violation)
      (make-message-condition "I am an error"))))
  => &violation exception
§ 7.2.1
The examples for cond1-x cond2-y are lacking trailing parentheses and should go like this:
(cond1-x (condition foo bar)) => foo
(cond2-y (condition foo bar)) => bar
§ 11.2
In the entry for fx-, the exception mentioned should have condition type &implementation-restriction (as explained in the introduction of that section), not &assertion.
§ 11.3
The examples for fl=? etc. lack the trailing ? in their names.
§ 11.4
In the specification of bitwise-copy-bit-field,

"... fixnum result of the following computation:"

should be replaced by

"... result of the following computation:"

§ 12.4
The last example in this section:
p => (15 5)
should be:
p => (15 . 5)
§ 13.2
The parameter to hashtable? should be obj instead of hashtable - hashtable? can be called with any object.
The description of hashtable-entries should contain an explanatory note saying that the order of the entries in the result vectors may be different from the example.
§ 16
The examples for environment both lack imports of (rnrs eval).