Issue: PRINT-READABLY-BEHAVIORForum: X3J13 Letter Ballot
References: *PRINT-READABLY* (X3J13/92-102, p22-74)
Public review comment Loosemore-24
Category: CLARIFICATION
Edit history: 21-Jun-93, Version 1 by Steele (based on text by Loosemore)
Status: Proposal CLARIFY passed (9+2)-0 on letter ballot 93-304.
Problem Description:
In E-mail amongst the public review committee, we had agreed that this
was another case of a previous cleanup vote that had not been adequately
integrated with the rest of the document. Supposedly, there are no
technical changes being recommended here.
The proposal DATA-IO:ADD-SUPPORT that was the basis for adding
*PRINT-READABLY* to the language is clear on this issue. However,
the document as it now stands does not accurately reflect
the proposal, or contain adequate cross-references.
Proposal (PRINT-READABLY-BEHAVIOR:CLARIFY):
Make the following changes to the dpANS:
(1) Remove this inaccurate statement from the "Notes" section for
*PRINT-READABLY*:
The printing of interned \term{symbols}, of \term{strings},
and of \term{bit vectors} is not affected by \varref{*print-readably*}.
(2) In the "Description" section for *PRINT-READABLY*, add after the
first paragraph:
Specifically, if \varref{*print-readably*} is \term{true}, printing
proceeds as if \varref{*print-escape*}, \varref{*print-array*}, and
\varref{*print-gensym*} were also \term{true}, and as if
\varref{*print-length*}, \varref{*print-level*}, and
\varref{*print-lines*} were \term{false}.
(3) In section 22.1.3, change numerous references to *PRINT-ESCAPE*
to include both *PRINT-ESCAPE* and *PRINT-READABLY*.
(4) Rewrite section 22.1.3.10 as follows. Prefix the first paragraph
with:
If \varref{*print-array*} is \term{true} and \varref{*print-readably*}
is \term{false}, any \term{vector} ....
Change the beginning of the next-to-last paragraph to:
If both \varref{*print-array*} and \varref{*print-readably*} are
\term{false}, the \term{vector} is not printed ...
Add a new paragraph before the last paragraph:
If \varref{*print-readably*} is true, the \term{vector} prints in an
\term{implementation-defined} manner. See \varref{*print-readably*}.
(5) Rewrite section 22.1.3.11 as follows. Prefix the first paragraph
with:
If \varref{*print-array*} is \term{true} and \varref{*print-readably*}
is \term{false}, any \term{array} ...
Change the beginning of the next-to-last paragraph to:
If both \varref{*print-array*} and \varref{*print-readably*} are
\term{false}, the \term{array} is printed ...
Add a new paragraph before the last paragraph:
If \varref{*print-readably*} is true, the \term{array} prints in an
\term{implementation-defined} manner. See \varref{*print-readably*}.
Test Case:
Not provided.
Rationale:
We should better document the relationship between *PRINT-READABLY* and
other printer control variables such as *PRINT-ESCAPE*.
Current Practice:
Not provided.
Cost to Implementors:
Probably relatively small.
Cost to Users:
None. This change doesn't affect anything already guaranteed to the user.
Cost of Non-Adoption:
Vagueness in the language specification.
Benefits:
Better program portability.
Editorial Impact:
Small. A few small, localized edits.
Aesthetics:
Mostly neutral.
Discussion:
This addresses comment Loosemore #24.