Home
Chez Scheme
Petite Chez Scheme
Books
SWL
Resources
Support
Contact

CSUG7 Errata

Version 7.3 (February 2007) Printing

Page 17 (reported by the author): The word "and" is missing before `"-verbose"' in the third paragraph.

Page 57 (reported by Michael Lenaghan): The word "does" in the phrase, "Assume that the following C does has been compiled and loaded," should be "code."

Page 58 (reported by Michael Lenaghan): The sentence ending with "alter Scheme objects" is missing a period.

Page 59 (reported by Michael Lenaghan): One occurrence of "type" in "type type of a Scheme value" should be eliminated.

Page 60 (reported by the author): The description of Scompact_heap should be replaced with:

Scompact_heap compacts the Scheme heap and places all objects currently in the heap into a static generation. Objects in the static generation are never collected. That is, they are never moved during collection and the storage used for them is never reclaimed even if they become inaccessible. Scompact_heap is called implicitly after any boot files have been loaded. It is also usually used before saving a heap via Ssave_heap.

Page 64 (reported by Michael Lenaghan): The first occurrence of "to" in the phrase, "do not reflect to changes to the interaction-environment parameter" should be eliminated.

Page 64 (reported by the author): The following paragraph should be added to the end of the description of Slock_object:

Locking objects that have been made static via heap compaction (see Scompact_heap above) is unnecessary but harmless.

Page 66 (reported by Bob Burger): In the specifications of Sinitframe, Sput_arg, and Scall, "itpr" should be "iptr."

Page 77 (reported by Michael Lenaghan): A close parenthesis should appear after y in the sentence that begins, "The form (alias x y causes."

Page 95 (reported by Michael Lenaghan): In the description of engine-block, the phrase "pass it to its own third argument" should read "pass the new engine to the original engine's third argument."

Page 108 (reported by Michael Lenaghan): The word "to" in the phrase "This is useful only when gensyms to not need" should be "do."

Page 112 (reported by the author): The following caveat should be added to the description of get-hash-table.

Because objects may be moved by the garbage collector, get-hash-table may need to rehash some objects and therefore cause side effects in the hash table. Thus, it is not safe to perform concurrent accesses of the same hash table from multiple threads using get-hash-table.

Page 141 (reported by Michael Lenaghan): The comma after logtest in the lead paragraph of Section 8.5 should appear after the parenthetical explanation that follows.

Page 141 (reported by Michael Lenaghan): The phrase "an infinite of zero bits" in the lead paragraph of Section 8.5 should read "an infinite number of zero bits."

Page 142 (reported by Michael Lenaghan): The argument to lognot should be int rather than n.

Page 144 (reported by Michael Lenaghan):

logbit0 is equivalent to

(lambda (i n) (logand (lognot (sll 1 i)) n))

should read

logbit0 is equivalent to

(lambda (i n) (logand (lognot (ash 1 i)) n))

Page 144 (reported by Michael Lenaghan):

logbit1 is equivalent to

(lambda (i n) (logor (sll 1 i) n))

should read

logbit1 is equivalent to

(lambda (i n) (logor (ash 1 i) n))

Page 144 (reported by Michael Lenaghan): The arguments to ash should be int and count rather than n and m.

Page 147-148 (reported by Michael Lenaghan): The phrase "not more than number of bits" should read "not more than the number of bits" in the descriptions of fxsll, fxsrl, and fxsra.

Page 148 (reported by Michael Lenaghan): The following sentence should be removed from the description of random-seed:

The random seed should be set only to a previous value from random-seed to ensure proper operation of the random number generator.

and the fllowing should be added:

When called without arguments, random-seed returns the current random seed. When called with one argument, which must be a nonnegative exact integer ranging from 1 through 232 - 1, random-seed sets the current random seed to the argument.

Page 164 (reported by the author): The token types lbrace, rbrace, and symbol-brace should be removed from the list of tokens returned by read-token.

Page 173 (reported by Ron Garcia): The word "ths" in the phrase "in ths manner; they are simply," should be "this."

Page 193 (reported by Jon Rossie and Jonathan Sobel):

(define-syntax keyboard (lambda (varexp1 exp2 ...))

should read:

(define-syntax keyword (lambda (varexp1 exp2 ...))

Page 258 (reported by Ryan Newton): The line that reads:

  (andmap identifier? (syntax (x ...)))

should be elided from the definition of parameterize.

Page 261 (reported by the author): In the fifth paragraph of Section 12.1, the sentence that reads:

The maximum generation, generation 4, is a static generation from which storage is never reclaimed and into which objects are placed only when saving a heap.

should instead read:

The maximum generation, generation 4, is a static generation from which storage is never reclaimed and into which objects are placed only when a heap is compacted (see Scompact_heap in Section 4.6.

Page 262 (reported by the author): The third paragraph of the description of collect should read:

Specifying the maximum generation as the argument to collect has the same effect as specifying one less; the maximum generation is actually a static generation into which objects are promoted only when a heap is compacted (see Scompact_heap in Section 4.6).

Page 268 (reported by the author): The following paragraph should be added to the description of lock-object:

Locking objects that have been made static via heap compaction (see Scompact_heap in Section ???) is unnecessary but harmless.

Page 269 (reported by the author): The following should be added to the end of the second paragraph.

The procedure get-hash-table, although apparently an accessor, might need to rehash the table after a garbage collection occurs and so must be considered a destructive operation in this context (page 112).

Page 269 (reported by the author): The phrase "may be might" should read "may run might."

Page 271 (reported by the author): In the description of condition-broadcast, "condition-signal releases all ..." should read "condition-broadcast releases all ...."

Page 272 (reported by the author): The following should be added to the end of the last paragraph of the thread parameters section:

Similarly, when a thread created by some other means is activated for the first time (see Sactivate_thread in Section ???), the current value (not location) of each thread parameter is inherited from the main (original) thread by the new thread.