It appears that Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> said:
Postel's so-called "robustness
principle" is in play here. "Be conservative
in what you send, be liberal in what you accept" would better read,
"Send conservatively; receive amply but grudgingly".
I'm reasonably sure he meant it more narrowly than that. "Be liberal" only
applied when the spec was ambiguous, as was often the case in the early Internet
when new corner cases popped up every day. When the spec clearly said to do
something he had no problem rejecting inputs that were wrong.
I haven't been writing code to handle byte stream text files as long as you have
but there's an unfixable problem since Unix lets you put a stream of bytes
not ending with \n into a file and then try to treat it as text. Whatever you
do will be wrong for some uses.
Perhaps we can segue to the argument about semicolons in Algol and Pascal vs.
semicolons in PL/I and C which is more or less the same issue.
R's,
John
PS: If only the Unix file system had records with two-byte length prefixes, or
better fixed length 80 byte records, you know, like real computers do.