CLHS: Issue PRINTER-WHITESPACE Writeup

#

## Issue PRINTER-WHITESPACE Writeup

    Issue:        PRINTER-WHITESPACE
    Forum:	      X3J13 Letter Ballot
    References:   22.1.3.8 (pp22-7..22-8),
    	      22.1.3.10 (p22-9)
    Category:     CLARIFICATION
    Edit history: 16-Jun-93, Version 1 by Pitman
    Status:       Proposal JUST-ONE-SPACE passed (7+1)-3 on letter ballot 93-304

    Problem Description:

      In the descriptions of how lists and vectors print, the draft
      standard says "whitespace" is printed where CLtL1 says "a space".
      Is this an unintentional change?

    Proposal (PRINTER-WHITESPACE:JUST-ONE-SPACE):

      When *print-pretty* is false, require the printer to use exactly
      one space in the indicated situations.  In general, when *print-pretty*
      is false, recommend that implementations and users output a minimum
      of space in this situation.  [This is status quo under CLtL1]

      Rationale: This forces implementations to use very little space
                 and makes printer behavior more regular across implementations.

    Proposal (PRINTER-WHITESPACE:WHITESPACE):

      Affirm that where the printer is defined to output whitespace,
      arbitrary whitespace is permissible.  Recommend that implementations
      and users use a minum of whitespace when *print-pretty* is false,
      but permit flexibility.  [This is status quo under dpANS]

      Rationale: This makes it less likely that users will write code
    	     that is not robust in the face of varying amounts of
    	     whitespace inserted by entities other than the printer
    	     (e.g., a human being).

    Test Cases:

      #1: (CHAR (FORMAT NIL "~S" '(A B)) 2)
      might return #\Space in some implementations and #\Newline in others.

      #2: (CHAR (FORMAT NIL "~S" '(A B)) 3)
      might return #\Space in some implementations and #\B in others.

      #3: (LENGTH (FORMAT NIL "~S" '(A B)))
      might return 5 in some implementations or greater numbers in others.

    Current Practice:

      Not provided.

    Cost to Implementors:

      JUST-ONE-SPACE: Relatively small.
      WHITESPACE:     None. (status quo)

    Cost to Users:

      JUST-ONE-SPACE: None.
      WHITESPACE:     None. (status quo)

    Cost of Non-Adoption:

      See Rationale above.

    Benefits:

      See above.

    Editorial Impact:

      Small.

    Aesthetics:

      Some people might quibble a little, but mostly pretty neutral.

    Discussion:

      This is in response to Public Review comment Loosemore #15.

      Pitman prefers option WHITESPACE.

      Pitman believes the complained-about change occurred during
      the integration of the pretty printer description with the
      printer chapter.  At Waters' direction,  he allowed this change
      to be taken as editorial--probably a bad idea in retrospect.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.