Re: [Json] JSON and int64s - any change in current best practice since I-JSON

Carsten Bormann <cabo@tzi.org> Thu, 25 January 2024 14:50 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 79AEFC14F61B; Thu, 25 Jan 2024 06:50:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level:
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5XiSafAczCkk; Thu, 25 Jan 2024 06:50:12 -0800 (PST)
Received: from smtp.zfn.uni-bremen.de (smtp.zfn.uni-bremen.de [134.102.50.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 666ADC14F6BF; Thu, 25 Jan 2024 06:50:09 -0800 (PST)
Received: from eduroam-0298.wlan.uni-bremen.de (eduroam-0298.wlan.uni-bremen.de [134.102.17.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4TLNz23jyCzDCk9; Thu, 25 Jan 2024 15:50:06 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <6A73993B-B54D-480D-AF79-081EE9D2E1C8@cursive.net>
Date: Thu, 25 Jan 2024 15:50:06 +0100
Cc: "json@ietf.org" <json@ietf.org>, cbor@ietf.org, Tim Bray <tbray@textuality.com>
X-Mao-Original-Outgoing-Id: 727887005.9022371-a53ba52752c73082e07790ceac73ba28
Content-Transfer-Encoding: quoted-printable
Message-Id: <94BD8ECC-0D50-4C09-9B29-7552AFC4D9ED@tzi.org>
References: <87527a42-aaac-4f39-b320-05f18a2808c1@codalogic.com> <C31BF4C8-9E6C-48F8-BF7B-D2C379273B3F@tzi.org> <CAHBU6it4SaLawSiBgK9ySkbxjtHE6CX-P3r=hzcVy4ksoQo-Cg@mail.gmail.com> <CAChr6SxHfLW-A1asAndKJz-AiyJv5QP18bi=_bNdKXw7zYHThw@mail.gmail.com> <CAChr6SweYdCWxSABZ7g20Zd-xBFzcK0Ritq53S7WtjSwc-vLmw@mail.gmail.com> <E5A68370-CC2F-4618-AB39-39A382656616@cursive.net> <807fea1b-a22b-4d6b-aa5d-720c9b12023c@codalogic.com> <09233A73-3A6B-4E6F-AEB8-596AC6442E24@cursive.net> <869950DC-647B-4481-AEF8-9E092384E99F@tzi.org> <CBD32B58-8328-4602-89C6-BC2A7A875A0D@cursive.net> <994E2C0A-4AE0-4720-8C67-913BBF033E11@tzi.org> <0BB09B30-B606-44CC-85DC-95A47E485316@cursive.net> <B22EDB2D-0AD1-4582-9191-EFB40E163F19@tzi.org> <F6EB02CA-C240-4FA1-92A8-C5BB883929C7@cursive.net> <29BD1557-59A1-4578-901B-C626ABBE9A78@tzi.org> <B25E10D2-17CF-4B3D-B04B-BABE3A209B90@cursive.net> <6A73993B-B54D-480D-AF79-081EE9D2E1C8@cursive.net>
To: Joe Hildebrand <hildjj@cursive.net>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/GWqJRyNKU5dwBWyGPFpIp1zdpwQ>
Subject: Re: [Json] JSON and int64s - any change in current best practice since I-JSON
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.39
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 25 Jan 2024 14:50:16 -0000

On 2024-01-23, at 00:54, Joe Hildebrand <hildjj@cursive.net> wrote:
> 
> I put together a quick requirements doc: https://github.com/hildjj/draft-hildebrand-eson-requirements

Thanks!

I reviewed this with the objective not to miss any simple things we could add to CBOR Extended Diagnostic Notation (EDN) now without creating pain.

I have the following observations (not commenting on the things already in EDN):

* EDN has a simplified comment syntax that accepts most JS-style comments, with some exceptions.  Since this is widely used in RFCs, we probably don’t want to change anything here.  We could detect * characters lining the inside of comments and react differently to embedded slashes though — this would change the meaning of some EDN that is valid today.

* parsing bare words as text string map keys can probably be added to EDN with limited pain (triggered on the trailing “:”).  The document currently uses ID_Start/ID_Continue as the repertoires, shouldn’t this be XID_Start/XID_Continue at this point?

* while trailing commas are allowed in EDN, elidable commas conflicts with the string concatenation syntax in Appendix G.4 of RFC 8610.  This is not very widely deployed, so we *could* decide to repeal it.

* Detecting range errors (outside binary64) does make sense.  Integers of course have a much larger range in CBOR, so some of this detection would only happen at the point in ingestion where the actual JSON data model is enforced.
(This reminds us that EDN doesn’t have any support for tag 4/5.)

* leading/trailing decimal points.  What is the semantics that need to be defined here?

* There are at least 4 kinds of base64 (classic/URL x padding/no); of course only base64URL without padding should be used in JSON, but this probably needs to be said.

* Rejecting duplicate/equivalent keys is probably something we want to put in.

I will make a few PRs for EDN now with the obvious parts...

Grüße, Carsten