[Top] [All Lists]

Re: Why the 822bis grammar is so painful

1999-02-07 17:35:29
Keith Moore writes:
DRUMS decided that 822 was too liberal in allowing white
space and comments, and that the revised mail specification needed
to discourage certain such uses, and therefore the grammar needed to be
able to explicitly specify where white space and comments were legal.

No, Keith, that isn't what happened.

DRUMS mailing list discussion, early 1996: Pine incorrectly truncates
the valid RFC 822 field

   From: joe(_at_)heaven(_dot_)

after the first dot.

Almost everyone agrees that this is unacceptable---but that 822bis
should recommend, for interoperability, that message generators avoid
inserting whitespace between address tokens.

DRUMS mailing list discussion, August 1996: There's a big difference

   (1) a single atom token containing two digits and
   (2) two atom tokens, each containing one digit.

Whitespace is prohibited in #1 but required in #2.

RFC 822 uses ``2DIGIT'' to mean #1, not #2, but if you refuse to look at
anything other than the formal grammar then you can't figure this out.

Four people suggest adding special notations to the grammar to indicate
where free insertion of whitespace is allowed. Two people suggest
sticking to the simple RFC 822 model of a separate tokenizer and parser,
and stating the definition of 2DIGIT within that model.

DRUMS mailing list discussion, October 1996: I give some examples of
RFC 822 syntax features not expressed in the RFC 822 formal grammar. One
example is that atoms extend until the next delimiter. Another example
is that whitespace may be freely inserted between tokens.

``I hope all will be pleased with my solution,'' Resnick says, without
saying what his solution is.

DRUMS mailing list discussion, November 1996: Pete Resnick has just
released his first attempt at an RFC 822 revision, with dozens of
changes not authorized by DRUMS.

In particular, Resnick has thrown away the RFC 822 tokenizer in favor of
explicit insertion of dozens and dozens of spaces, tabs, and comments
throughout the grammar.

Paul Overell, Kai Henningsen, and I object to the destruction of the
tokenizer. Resnick claims that he's trying to support automated testing
of whether a message is syntactically valid; he also claims that English
is error-prone while ABNF is not. Jim Conklin and Chris Newman state
that they agree.

However, Dan's mistaken to blame Pete for this.  A large number 
of DRUMS participants - probably a rough consensus - argued for 
the changes to the grammar notation,


Pete Resnick explicitly stated that nobody had discussed this with him.
He repeatedly talked about the destruction of the tokenizer as his own
personal decision. When he was explaining ``why I wrote [the grammar]
the way I did'' he never claimed that he had approval from DRUMS.