Re: [Json] I-JSON Topic #5: Numbers

Carsten Bormann <cabo@tzi.org> Tue, 27 May 2014 19:17 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8A051A0698 for <json@ietfa.amsl.com>; Tue, 27 May 2014 12:17:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level:
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_HELO_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xtzuNRS8TuJP for <json@ietfa.amsl.com>; Tue, 27 May 2014 12:17:38 -0700 (PDT)
Received: from informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A91F11A0664 for <json@ietf.org>; Tue, 27 May 2014 12:17:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from smtp-fb3.informatik.uni-bremen.de (smtp-fb3.informatik.uni-bremen.de [134.102.224.120]) by informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id s4RJHOr8000553; Tue, 27 May 2014 21:17:24 +0200 (CEST)
Received: from [192.168.217.148] (p54892D14.dip0.t-ipconnect.de [84.137.45.20]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTPSA id 8E1301DE8; Tue, 27 May 2014 21:17:23 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.2\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <5384D0C2.7030407@cisco.com>
Date: Tue, 27 May 2014 21:17:21 +0200
X-Mao-Original-Outgoing-Id: 422911041.499976-73d4f690bd02ea5060f743c9643d16cc
Content-Transfer-Encoding: quoted-printable
Message-Id: <62E6DC51-2D3D-4C55-89D8-19810347A9FB@tzi.org>
References: <535EB3BF.8080606@cisco.com> <CAHBU6ivjF9ULW0yGSVdJi2D6QgUThuhym_ZhpgLM=cvLu=mAiQ@mail.gmail.com> <CF841AAE.47D86%jhildebr@cisco.com> <CAHBU6itK5HtSTPWSsHsHUPja90emqU86LsgjrBorkqcUDivS2A@mail.gmail.com> <CF87EB9C.48BB0%jhildebr@cisco.com> <537A5BE0.3020406@cisco.com> <CF9FCEC9.4A4E7%jhildebr@cisco.com> <488AE66E-725D-40B3-9FDA-ADA1018BCF65@tzi.org> <CFA0F09E.4A609%jhildebr@cisco.com> <255B9BB34FB7D647A506DC292726F6E115461FFE59@WSMSG3153V.srv.dir.telstra.com> <20140521020731.GG9283@mercury.ccil.org> <CFA21B5C.4A721%jhildebr@cisco.com> <255B9BB34FB7D647A506DC292726F6E1154629E87D@WSMSG3153V.srv.dir.telstra.com> <CAHBU6isO7oooeN8rH8emx-xuOrs2yzBUrhyJNYYAyzK2-QfF0w@mail.gmail.com> <CAK3OfOih-YO-ncbSc3dVv_O7uHfjRxCDjUpzHmkFG5Dj7kb-xg@mail.gmail.com> <5384C118.4060402@cisco.com> <14DB352D-3D0C-458A-90BE-38BCA8CC98DD@tzi.org> <CAHBU6isjZjfoga_g9efiK1L=Pf40ZQXg8War+k9JDM13quHPOQ@mail.gmail.com> <DF223160-A135-4B8E-A895-53A4BF63AA1E@tzi.org> <5384D0C2.7030407@cisco.com>
To: Matt Miller <mamille2@cisco.com>
X-Mailer: Apple Mail (2.1878.2)
Archived-At: http://mailarchive.ietf.org/arch/msg/json/INQNOI5Q9bZEijuroR3rLpTqFL4
Cc: Nico Williams <nico@cryptonector.com>, Tim Bray <tbray@textuality.com>, IETF JSON WG <json@ietf.org>
Subject: Re: [Json] I-JSON Topic #5: Numbers
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json/>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 19:17:38 -0000

On 27 May 2014, at 19:52, Matt Miller <mamille2@cisco.com> wrote:

> Is your suggestion then to leave the text as-is?  Or can you provide
> specific text to include?

As I said, the second half of the proposed addition does add clarity:

»Furthermore, an I-JSON sender MUST NOT expect a receiver to treat an integer whose absolute value is greater than 9007199254740992 as an exact value.«

To be able to attach this right to the first paragraph of 2.2, maybe s/Furthermore/In particular/.
Also add the suggestion to call out that 9007199254740992 is 2**53:

   Software which implements IEEE 754-2008 binary64 (double precision)
   numbers [IEEE754] is generally available and widely used.
   Implementations which generate I-JSON messages MUST NOT assume that
   receiving implementations can process numeric values with greater
   magnitude or precision than provided by those numbers.  I-JSON
   messages SHOULD NOT include numbers which express greater magnitude
   or precision than an IEEE 754 double precision number provides, for
   example 1E400 or 3.141592653589793238462643383279.
   ➧ In particular, an I-JSON sender MUST NOT expect a receiver to treat
   an integer whose absolute value is greater than 9007199254740992 (i.e., 
   that is outside the range [-2**53, 2**53], where ** stands for exponentiation)
   as an exact value.

This then leads well into the next paragraph:

   For applications such as cryptography, where much larger numbers are
   reasonably required, it is RECOMMENDED to encode them in JSON string
   values.  This requires that the receiving program understand the
   intended semantic of the value.

Maybe s/where…are/where exact interchange of…is/ in there for even more clarity.

Grüße, Carsten