Subject: Integer ABNF in syntaxes I-D

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Wed, 23 Apr 2003 19:51:38 -0700

I think the production
        Integer = [ HYPHEN ] number

is incorrect.  I think it should be:
        Integer = ( HYPEN LDIGIT *DIGIT ) / number

That is, -0 should be invalid.

Kurt

---

From: "Steven Legg" <[email-masked]>
Date: Thu, 24 Apr 2003 16:08:00 +1000

>         Integer = ( HYPEN LDIGIT *DIGIT ) / number

Agreed. I've made the change for the next revision of the draft.

Regards,
Steven

---

From: Hallvard B Furuseth <[email-masked]>
Date: Thu, 24 Apr 2003 13:28:25 +0200

> That is, -0 should be invalid.

I don't see why.  What I'm wondering is why 003 is invalid.
Though I agree that either both should be valid or both invalid.

-- 
Hallvard

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Thu, 24 Apr 2003 06:28:44 -0700

>Though I agree that either both should be valid or both invalid.

Because implementations, clients in particular, are very bad
at parsing anything out of the ordinary.  For example, consider
all the clients which improperly treat anything starting with
a "0" as base 8.  Or clients which choke on "-0".

Operational experience has shown that providing multiple
encoding options leads to interoperability problems as not
all implementations will implement (proper) decoders for
each case.  It is much better to have only one encoding
option and promote ("be liberal in what you except but
strict in what you generate").

Kurt

---

From: Hallvard B Furuseth <[email-masked]>
Date: Thu, 24 Apr 2003 16:16:04 +0200

Kurt D. Zeilenga writes:
> at parsing anything out of the ordinary.  (...)

OK.

> It is much better to have only one encoding option and promote ("be
> liberal in what you except but strict in what you generate").

With 'liberal in what you expect', do you mean a server could accept -0
and 003, but if so it should rewrite them to 0 and 3?  Do the drafts
allow that?

-- 
Hallvard

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Thu, 24 Apr 2003 07:58:01 -0700

>> liberal in what you except but strict in what you generate").

s/except/accept/

>and 003, but if so it should rewrite them to 0 and 3?

s/server/implementation/ and s/should/must/,  yes.

>Do the drafts allow that?

I don't recall an explicit statement to this effect in the
drafts, but I believe it is allowed by general interoperability
principles of the Internet.

Kurt