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

Re: Robert Ullman's "8-bit draft"



Since I, and at least of few of the others who have felt most strongly 
about this, will not be in St. Louis, let me reiterate a position, 
stated as simply as possible:

Any proposal, including this one, that changes the "7 bit" rule to an "8 
bit" rule by simply declaring the 7 bit implementations obsolete and 
expecting all systems to accept (and presumably send) 8 bit characters 
is not acceptable.  If 8 bit characters are to be sent without encoding, 
the receiver must explicitly agree to accept them.
  While I acknowledge Prime's experience that few problems have been
encountered, the fact remains that others of us have experienced 
problems and that there is a difference of opinion about where the 
boundary between "acceptable but not quite right" and "broken" behavior 
falls.
  More important, at the present stage in the maturity and development 
of the Internet, it seems to be an extremely poor idea, on technical, 
interoperability, and moral grounds, to invalidate any implementation 
that now conforms to the protocols, especially for the purpose of
retroactively validate a nonconforming implementation.  
  If nothing else, it sets a rotten precedent, encouraging people to 
ignore the protocols and do what they feel like, then come in and say 
"well, it works for us and does not cause more damage than *we* are 
willing to accept, why don't the rest of you folks make it the rule".  
While exceptions are conceivable,  I don't think it is wise to appear to 
encourage that type of behavior under any circumstances.
  I can imagine situations, such as the introduction of the DNS, that
are sufficiently important to justify a strategy that invalidates 
previously-conformant implementations, but, even there, the transition
plan did not subject an implementation that had not yet conformed to the
new rules to a sudden onslaught of unsolicited and possibly
incomprehensible information. 


Minor, by comparison, issues, commented on in the event that some of the 
rest of the text here is used...

>The octets CR and LF must not occur within the line; that is, not as
>part of a CR LF sequence.  A CR or LF appearing erroneously within a
>line may be interpreted as the end of a text line by some mailers. This
>may be a side-effect of storage in, and retrieval from, the host's
>"native" text file format. Internet mailers may recognize "lines"
>terminated by (only) LF or by CR not followed by LF, but must send only
>lines properly terminated with CR and LF.

This breaks conforming implementations, and changes the standard to 
adapt to non-conforming ones at the expense of implementations that are 
doing something that has historically been reasonable.  Again, I think 
that represents terrible policy, and almost as bad strategy.  The 
correct rule would be
  - lines terminate in CR LF.  Nothing else terminates a line.  CR and 
LF appearing "bare" within a line are much like HT, VT,  and "other
control characters": senders should be aware that receivers may not
interpret them the way the senders intend.  It is not acceptable to make
an implementation invalid because it uses CR to imply "return to left 
margin on same line" or LF to imply "index to same position on next 
line".

>Internet mailers must pass all octets with values 9 (TAB), 32 to 126,
>129 (HOP), 153 (SGCI), and 160 to 255 unmodified; they should pass all
>other values ("control characters") unmodified wherever possible.
  This restriction must be expanded to included CR and LF to be 
meaningful.  More important, a restriction-proposal must either include 
ESC, or must prohibit explicitly prohibit the use of ESC-based 7bit
sequences in lieu of HOP and SGCI. 

You also should include two additional statements in your "line" 
definition:
 (i) any character switching controls (e.g., HOP and SGCI sequences) 
count in the 1000 octet limit, not just graphic characters.  I know you 
intend this, but, given some prior experiences, it should be made 
extremely clear.
 (ii) similarly, CRLF.CRLF terminating "DATA" means just exactly 
that--no HOP or SGCI sequences an appear on that line, especially before 
the ".".  Again, I know that is what you intend, but a final document
should be tediously clear about this. 

   john

















Ullmann                                                         [Page 4]
***END-OF-MESSAGE***
-------