[rfc-i] v3imp #8 Fragment tagging on sourcecode
dev+ietf at seantek.com (Sean Leonard) Wed, 28 January 2015 22:31 UTC
From: "dev+ietf at seantek.com"
Date: Wed, 28 Jan 2015 14:31:06 -0800
Subject: [rfc-i] v3imp #8 Fragment tagging on sourcecode
In-Reply-To: <20150128173229.GC3110@localhost>
References: <54C28E3F.4040901@alum.mit.edu> <E378C876-5217-4274-86B6-1DBFB653DE24@vpnc.org> <54C29891.6040101@alum.mit.edu> <54C3576A.9030206@greenbytes.de> <54C3BE06.8010707@alum.mit.edu> <54C3C6A3.6080003@seantek.com> <54C3CF7F.6090901@seantek.com> <54C4AFF1.6030608@gmx.de> <54C7FAD7.7040500@alum.mit.edu> <54C870B5.7000205@seantek.com> <20150128173229.GC3110@localhost>
Message-ID: <54C9632A.2040204@seantek.com>
On 1/28/2015 9:32 AM, Nico Williams wrote: > On Tue, Jan 27, 2015 at 09:16:37PM -0800, Sean Leonard wrote: >> Overall I still stand by my proposition that the RFC is the module >> for ABNF purposes. Honestly it just makes things a lot simpler. To >> the extent that you need to split things inside the RFC, you can >> refer to specific sections. Specific comments below. > Well, draft-ietf-json-text-sequence-13 will break this proposition. Hello--I took a look at draft-ietf-json-text-sequence-13. There are two typos: Abstract: ASCII Record Separator (0x1E), and each ending with an ASCII Line Feed character (0x1A). ^^^^^^ should be 0x0A. Section 2.2 Note that on some systems it's possible to input RS by typing 'ctrl-^'; on some system or applications the correct sequence may be 'ctrl-v crtl-^'. This is helpful when constructing a sequence ^^^^^^ should be ctrl-^. An editorial point: why define LF in this I-D when it's already defined in RFC 5234 Appendix B? Just sayin'. > It's on the RFC-Editor queue. We could "fix" the "problem" in AUTH48, > but I've no intention to. Well you might want to look at the problems above... > I doubt it's the first RFC that will break your assumption. It's not an RFC yet. :-) First of all, I don't see a "problem" because there are no "modules" in draft-ietf-json-text-sequence, or any other Internet-Draft. It's all a bunch of plain text. I am not trying to be flippant; it's simply the way it is. I-Ds are just large reams of plain text punctuated with FF codes. That is why extracting data out of RFCs is convoluted and fraught with error. I am not stating an assumption so much as I am stating a workable proposition that makes sense for authoring future RFCs in a structured format, i.e., a format where ABNF is clearly distinguished from specification text or other things. I too dealt with this exact problem in draft-josefsson-pkix-textual-10 (also in the RFC-Editor queue, btw). In that soon-to-be-RFC, I renamed the rules to: textualmsg ; what most extant parsers and generators will work with stricttextualmsg ; what compliant generators SHOULD emit laxtextualmsg ; the most relaxed input that parsers MAY accept Thus, consider renaming the rules to distinguish between inputs and outputs, such as {JSON-sequence-in} and {JSON-sequence-out}. It is clearer and more accurate. I note that the "meat" parts are named differently: {possible-JSON} vs. {JSON-text}, presumably to indicate the difference in strictness between generators and parsers. As a broader useful point (not directed specifically to draft-ietf-json-text-sequence-13), I think it would be nice if future RFC ABNF can assume that the symbols in RFC 20 for %x00-20 / %x7F are rules that can be used as-is. Hence NUL = %x00, SUB = %x1A, DEL = %x7F, etc. > Not that it matters. Suppose all RFCs with ABNF only had a *single* > ABNF module, so that each module could be said to be named rfc1234.abnf. > Now what? You'd still be missing the machine-readable imports. Uh I already laid this out...I no longer ascribe to the premise of "ABNF modules". It's just a bunch of ABNF text. You know, other symbolic systems such as ASN.1 have modules...and ASN.1 is seen as way too complicated. I doubt that anyone is going to "compile" the ABNF in draft-ietf-json-text-sequence-13 anyway--they are just going to hunt for RS bytes, which is the whole point. > We could say that every module exports every rule by default, so we > could get away with not having exports. But imports are absolutely > necessary in order to validate ABNF modules that import rules from > others. Unless you don't have ABNF modules... > We already have a mess on our hands. ABNF needs a module system. An > ad-hoc module system won't do. No modules = no messes. I would say that all the crazy importing and exporting in ASN.1 modules (an in particular, the fact that the definitions have changed over time, witness PKCS #7 1.0 -> PKCS #7 1.5 -> CMS '99 -> CMS '02 -> CMS '04 -> CMS '09) is much messier. Significant tool support is required, which is one significant reason why people hate on ASN.1 and are trying to do things with JSON instead. Sean
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Julian Reschke
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Hoffman
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Ted Lemon
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Ted Lemon
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Julian Reschke
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Julian Reschke
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Ted Lemon
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Julian Reschke
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Julian Reschke
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Nico Williams
- [rfc-i] [Json] v3imp #8 Fragment tagging on sourc… Nico Williams
- [rfc-i] [Json] v3imp #8 Fragment tagging on sourc… Bjoern Hoehrmann
- [rfc-i] [Json] v3imp #8 Fragment tagging on sourc… Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Sean Leonard
- [rfc-i] ABNF Core Rule extensions Paul Kyzivat
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] ABNF Core Rule extensions Nico Williams
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] [Json] v3imp #8 Fragment tagging on sourc… Bjoern Hoehrmann
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Bjoern Hoehrmann
- [rfc-i] ABNF Core Rule extensions Julian Reschke
- [rfc-i] ABNF Core Rule extensions Bjoern Hoehrmann
- [rfc-i] ABNF Core Rule extensions Julian Reschke
- [rfc-i] ABNF Core Rule extensions Bjoern Hoehrmann
- [rfc-i] ABNF Core Rule extensions Julian Reschke
- [rfc-i] [Json] v3imp #8 Fragment tagging on sourc… Sean Leonard
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] ABNF Core Rule extensions Paul Kyzivat
- [rfc-i] ABNF Core Rule extensions Sean Leonard
- [rfc-i] ABNF Core Rule extensions Julian Reschke
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] ABNF Core Rule extensions Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Bjoern Hoehrmann
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] ABNF Core Rule extensions Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Bjoern Hoehrmann
- [rfc-i] ABNF Core Rule extensions Dave Crocker
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Riccardo Bernardini
- [rfc-i] ABNF Core Rule extensions Sean Leonard
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat
- [rfc-i] v3imp #8 Fragment tagging on sourcecode Paul Kyzivat