Subject: [Cbor] Suresh Krishnan's No Objection on draft-ietf-cbor-cddl-06: (with COMMENT)

From: Suresh Krishnan <[email-masked]>
Date: Wed, 21 Nov 2018 06:33:30 -0800

Suresh Krishnan has entered the following ballot position for
draft-ietf-cbor-cddl-06: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-cbor-cddl/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

* Section 3.8.1

Looks like there is an off-by-one error here. Shouldn't

BYTES_N == 256**N

be

BYTES_N == 256**N-1

instead?

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 21 Nov 2018 21:34:09 +0100

Hi Suresh,

> On Nov 21, 2018, at 15:33, Suresh Krishnan <[email-masked] <mailto:[email-masked]>> wrote:
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html <https://www.ietf.org/iesg/statement/discuss-criteria.html>
> https://datatracker.ietf.org/doc/draft-ietf-cbor-cddl/ <https://datatracker.ietf.org/doc/draft-ietf-cbor-cddl/>
> 
> 
> 

That would be correct if the line said 

   “0..BYTES_N”, where BYTES_N == 256**N-1.

But it says:

   "0...BYTES_N”, where BYTES_N == 256**N.

where “…” is the half-closed range operator that is closed on the left and open on the right, i.e., does not include the upper bound in the interval (“..” is closed on both sides and therefore does).
Please see Section 2.2.2.1 about the two range operators “..” and “…”.

(And, yes, I’m now aware that Swift uses “...” for the closed and “..<“ for the half-closed range operator (originally the latter even was “..”, the other way around from CDDL…).  Nice, but we nailed down those for CDDL quite a while ago, based on the range operators in Ruby, which are in turn somewhat, but not quite, based on those in Perl, which of course were informed by subranges in Pascal, where “..” also is a closed range.  Maybe we can add “..<“ for more visual attention in CDDL 2.0, keeping “...” to also mean half-closed.)

Grüße, Carsten

PS.: Yes, I admit I constructed the example to induce attentive readers to do a double-take, so they look up the two range operators again.  
Apparently, it kind of almost worked :-)

---

From: Suresh Krishnan <[email-masked]>
Date: Thu, 22 Nov 2018 04:56:41 +0000

On Nov 21, 2018, at 3:34 PM, Carsten Bormann <[email-masked]<mailto:[email-masked]>> wrote:

Hi Suresh,

On Nov 21, 2018, at 15:33, Suresh Krishnan <[email-masked]<mailto:[email-masked]>> wrote:

* Section 3.8.1

BYTES_N == 256**N

be

BYTES_N == 256**N-1

But it says:

Grüße, Carsten

Haha. Touché. Agree that a more distinct visual callout would be helpful in the future. Thanks for the clarification.

Regards
Suresh