[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comments on changes in Mary Poppins edition

If we agree that the following are mistakes in the manual they should
go into an errata file to be distributed to readers of the book.

p.245: I don't like the specification that VECTOR-PUSH-EXTEND returns
NIL if given a non-adjustable array whose fill-pointer is equal to its
length.  I think it would be more tasteful to say that this signals an
error, or at least that it is an error.
I don't think user programs should have to check the value returned by
VECTOR-PUSH-EXTEND to make sure that it worked.

p.270: It says that if a form typed at top-level returns no values,
* is set to NIL and the *,**,*** and /,//,/// histories are updated.
The last mail I have about this says that the history variables would
be unchanged in this case:

    Date:  2 Sep 83 0047 EDT (Friday)
    From: Guy.Steele@CMU-CS-A
    [Comments by GLS are in square brackets.]
    p. 257 (second and fourth paragraphs, and parentheses in the first paragraph):
    We agreed to change the rules for * to be consistent with what was printed,
    rather than aligned with +, but the manual wasn't updated.
    [I remember what was agreed to.  + is as before.  *, **, *** are updated
    every time a result is printed, whether it is the only result or one of
->  several.  If an evaluation produces zero values, then * does not change.
    /, //, /// are updated when the results of an evaluation are printed,
    however many (possibly zero) there are; if the computation is aborted,
    / is not updated.]

Maybe we later agreed to change the no-values case and I just forgot
and didn't save that mail.

p.289: A consequence of the description of how #+ and #- interact with
*read-suppress* is that "#+foo #+bar 1 #-bar 2" is not consistently
skipped if "foo" is false; it reads as the number "2" if "foo" and "bar"
are both false.  I think it should always read as nothing.
I think the last bulleted paragraph on page 289 should simply be
deleted; #+ and #- while in *read-suppress* mode behave normally, except
of course they do not turn -off- *read-suppress* mode.

p.310: The example of the ' macro character should be supplying
T as the second argument to READ (eof-error-p).

p.335: There's part of some other document on this page.

p.341: The host argument to parse-namestring would almost never be used
(normally the host would come from the defaults), so it would have been
better to make this argument a keyword argument rather than an optional
argument.  Probably it would have been more consistent to make both
optional arguments into keyword arguments.  Is it too late?

p.343: The bottom paragraph didn't get updated for the loosening up of
structured pathname components.

p.344: In the explanation of the meaning of ENOUGH-NAMESTRING, I believe
that <defaults> should be supplied in the call to PARSE-NAMESTRING.
Otherwise PARSE-NAMESTRING might parse the string relative to the host of
*DEFAULT-PATHNAME-DEFAULTS*, which could be the wrong host; this means
that ENOUGH-NAMESTRING would be required always to include a host in its
output, which is probably not what you intended.