Subject: [Json] Fwd: New Version Notification for draft-ietf-json-rfc4627bis-04.txt

From: Tim Bray <[email-masked]>
Date: Thu, 26 Sep 2013 09:59:58 -0700

I think this catches up with the state of WG discussion. -T

---------- Forwarded message ----------
From: <[email-masked]>
Date: Thu, Sep 26, 2013 at 9:58 AM
Subject: New Version Notification for draft-ietf-json-rfc4627bis-04.txt
To: Tim Bray <[email-masked]>

A new version of I-D, draft-ietf-json-rfc4627bis-04.txt
has been successfully submitted by Tim Bray and posted to the
IETF repository.

Filename:        draft-ietf-json-rfc4627bis
Revision:        04
Title:           The JSON Data Interchange Format
Creation date:   2013-09-26
Group:           json
Number of pages: 14
URL:
http://www.ietf.org/internet-drafts/draft-ietf-json-rfc4627bis-04.txt
Status:          http://datatracker.ietf.org/doc/draft-ietf-json-rfc4627bis
Htmlized:        http://tools.ietf.org/html/draft-ietf-json-rfc4627bis-04
Diff:
http://www.ietf.org/rfcdiff?url2=draft-ietf-json-rfc4627bis-04

Abstract:
   JavaScript Object Notation (JSON) is a lightweight, text-based,
   language-independent data interchange format.  It was derived from
   the ECMAScript Programming Language Standard.  JSON defines a small
   set of formatting rules for the portable representation of structured
   data.

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat

---

From: Jorge Chamorro <[email-masked]>
Date: Fri, 27 Sep 2013 21:31:03 +0200

> I think this catches up with the state of WG discussion. -T

"numbers which are integers, are in the range [-(2**53)+1, (2**53)-1], and are represented without "frac" or "exp" parts (for example as 3 not 3.0), are interoperable in the sense that implementations will agree exactly on the numeric values."

I don't get what's with the "without 'frac' or 'exp' parts" part.

I mean, don't 3, 3.0, 30e-1 or even 0.000000000000000000000000003e27 produce the same ieee754:double?

At least in JavaScript all of them are ===.

Thank you,
-- 
( Jorge )();

---

From: John Cowan <[email-masked]>
Date: Fri, 27 Sep 2013 16:24:33 -0400

> produce the same ieee754:double?

In languages that don't treat 3 as generating a fixed-point value, yes.

> At least in JavaScript all of them are ===.

JavaScript is one of those.

-- 
John Cowan              [email-masked]          http://www.ccil.org/~cowan
Most people are much more ignorant about language than they are about
[other subjects], but they reckon that because they can talk and read and
write, their opinions about talking and reading and writing are as well
informed as anybody's.  And since I have DNA, I'm entitled to carry on at
length about genetics without bothering to learn anything about it.  Not.
                        --Mark Liberman

---

From: Jorge Chamorro <[email-masked]>
Date: Sat, 28 Sep 2013 16:33:57 +0200

> In languages that don't treat 3 as generating a fixed-point value, yes.

But that phrase doesn't belong there. Look, the text begins with:

" (...) Since software which implements IEEE 754-2008 [IEEE754] is generally available and widely used, good interoperability can be achieved by implementations which expect no more precision or range than provided by an IEEE 754 binary64 (double precision) number (...)"

Then says:

"Note that when such software is used [ <-- "software which implements IEEE 754-2008" ] numbers which are integers, are in the range [-(2**53)+1, (2**53)-1], and are represented without "frac" or "exp" parts (for example as 3 not 3.0), are interoperable in the sense that implementations will agree exactly on the numeric values"

But when "software which implements IEEE 754-2008" is used, it doesn't matter whether the integers are represented with or without "frac" or "exp" parts.

If it's meant for the "languages that treat 3 as generating a fixed-point value", it's misplaced, ISTM.

For languages that treat 3 as a fixed-point value the range [-(2**53)+1, (2**53)-1] may or may not be an adequate range. The 4 bytes 'long' is quite a common type for integers.

And because the most common fp type is the double, in such a language a 3.0 instead of a 3 might happen to result in perfect interoperability, but that phrase somehow recommends against it.

I would remove the ´and are represented without "frac" or "exp" parts (for example as 3 not 3.0)´ phrase entirely. 

> JavaScript is one of those.

Yes.

---

From: Jorge Chamorro <[email-masked]>
Date: Sat, 28 Sep 2013 16:39:42 +0200

On 28/09/2013, at 16:33, Jorge Chamorro wrote:
> 
> in such a language a 3.0 instead of a 3 might happen to result in perfect interoperability, but that phrase somehow recommends against it.

A 4294967296.0 instead of a 4294967296, for example. (It's 2**32)

-- 
( Jorge )();