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

Jeremy O'Donoghue <jodonogh@qti.qualcomm.com> Mon, 29 January 2024 09:54 UTC

Return-Path: <jodonogh@qti.qualcomm.com>
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 ECCCCC14EB19; Mon, 29 Jan 2024 01:54:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.006
X-Spam-Level:
X-Spam-Status: No, score=-2.006 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=qualcomm.com
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 PeYxplILBno0; Mon, 29 Jan 2024 01:54:23 -0800 (PST)
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 CC787C14F6AE; Mon, 29 Jan 2024 01:54:23 -0800 (PST)
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 40T4hL2i032416; Mon, 29 Jan 2024 09:54:22 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= from:to:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; s=qcppdkim1; bh=vDykGWc86b0gX1gtZEwu mF8VU7l77Ar28u4ST/q5yfI=; b=WT7963eL3Nxb/eVGuPKMGmKtZmam39GUuL3J n30Lima61YxXL762qE6splMwEuTe8mcdd6oJnNoGDRLMqIqOtjQL1iG6SyHRSsWW WW4TTgX0wX/Ci5duHkeq3E5zGOxKWGbUh4RDarC7IhiLE9OQRgUMs1QDBy+ED0AI xZZ0sfoHNtNW0VLwhEVXeuvbk3ARa9TDrIvsnDV8IaNTedO2H0PFcHfK+nfBQGGl IfTE4sS2eWzL1FVURtDl83FhSNFUgcQq8r/Pnbi66b+omr+KkFkFBXM8zF9QMjDW g+et/RAB2mFE1OwiUP/8MTtXiBNszItNB7SMKLUMmRatkoN/jg==
Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vx3rqgnwu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 29 Jan 2024 09:54:22 +0000 (GMT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iXQDvKY1ubLqCls+/UxRuQdHexel4cQqd98ewhxZ3Av/s7nZSiMmcqaCM0DDI3WUzSCTa1Azi8hL9GKJMW6N7f0I5INYNm+i1FGSDgdjXVyPkvoieKSzKni3MGflCPEhMjAFdMKldpqwM+0FI9Qr1YRPJFUGiX0OdU9dhVfK+iIUtrgVP+AnZ2ZuAza8DW1o+o1+G6sF+eSowPw1ZO0mScGDa9gcky7QpdlH4C0OlgC7clBAGREhHyaRoqYMkMRM82FvN+xGZ8W8VN9BvH8I2YnrvW2rWpQwwv3UjsuB5F3ufpp1zqFM9aC1oZFlbWOayxY0XxMNHytkdVm3NraPdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vDykGWc86b0gX1gtZEwumF8VU7l77Ar28u4ST/q5yfI=; b=RMbRVwNHe0IIFbmwyWhR7I9x0hH2cdX82DY6kwAyV+DKJ+oSVo3+4I4UpNAo/FfJTHe97xGgvuG869WDpKD2rlsBtZKAg2wN+29+8qSJqB5a5RgpwQzr9N9jirXUUFweZ9TPHNNzR6BOhaJ+M8XxFSEvalCH7hTeamL7W9V7kBOQs2pnUzPLbNvlqadnXbidzlm7BsPYaY8F/wC3m3VWLk7PLs5tEvPd0GfKucxPAboIX6huwhEwPWNOGq/TZquVJiohiA64Xudz3pQdVmSliMHs9loAWymDB0cs7InuMHHSAfdqdK25ZsuKNCOSN/glrtNgc/2M1bWhzw5F2K1GaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=qti.qualcomm.com; dmarc=pass action=none header.from=qti.qualcomm.com; dkim=pass header.d=qti.qualcomm.com; arc=none
Received: from PH0PR02MB7256.namprd02.prod.outlook.com (2603:10b6:510:1a::23) by BL0PR02MB6468.namprd02.prod.outlook.com (2603:10b6:208:1ce::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Mon, 29 Jan 2024 09:54:16 +0000
Received: from PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::2c0a:883c:ec4e:ad39]) by PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::2c0a:883c:ec4e:ad39%7]) with mapi id 15.20.7228.029; Mon, 29 Jan 2024 09:54:16 +0000
From: Jeremy O'Donoghue <jodonogh@qti.qualcomm.com>
To: Carsten Bormann <cabo@tzi.org>
CC: Joe Hildebrand <hildjj@cursive.net>, "json@ietf.org" <json@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>, Tim Bray <tbray@textuality.com>
Thread-Topic: [Cbor] [Json] JSON and int64s - any change in current best practice since I-JSON
Thread-Index: AQHaShYzRILMnFHwxUCyL/DIvr5mBbDgYWgAgAYnDwCABB7uAIAACJQAgAMYYwCAABfmz4AADAMAgAKqKfI=
Date: Mon, 29 Jan 2024 09:54:16 +0000
Message-ID: <PH0PR02MB7256FACC8FD6E1AAAB388365F27E2@PH0PR02MB7256.namprd02.prod.outlook.com>
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> <94BD8ECC-0D50-4C09-9B29-7552AFC4D9ED@tzi.org> <0C97FF67-A3D4-44EC-BD17-AC1F7A2BA9A2@cursive.net> <80D3667A-BC74-4197-BBBC-2B7B9D478D34@tzi.org> <PH0PR02MB72562E37EEB0AC197AB28283F2782@PH0PR02MB7256.namprd02.prod.outlook.com> <64F16573-3CBB-4D21-B974-9E0E0E89D465@tzi.org>
In-Reply-To: <64F16573-3CBB-4D21-B974-9E0E0E89D465@tzi.org>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH0PR02MB7256:EE_|BL0PR02MB6468:EE_
x-ms-office365-filtering-correlation-id: f677e57b-4f46-424d-4c50-08dc20b04183
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: RJtmnHgojN6cpkrOgpTZGdWwtHkZ7C+uPexTPfgq6YXt0NdK5EeVhyvfiLZHawzWcD1b9erN3P3T78mg38WYixGQ5xkqQncPZY98TinQA8eZWxwzZWp4wnfhijRHnDqYKbzzxZKInOyVVHTn7R8hAT2/A9sjRBYrf/Ud/6+3udSQAQlGNGLjc6lJytpLeOy0qCSIeGA6eSyr3/odCXBQsGdiN74mxkAwDD1te5Mibc3bWzX/7kQrnM8cAmYRIq5KtyPM8S7Y2LCUWPTuG1sJXO2rsDJMhi5svqOVHMzYhlb4TFDBOupZqer6KguzsOvNg5R52CNrY7R4dV1w7LRoheehZU2YyoUhglySRfHq+Yr/yFs4QooF7Epi/KC6GY4JVvD6YUq/DFMOJDM5A23pD35KuCeSm/mYFeNAq1ctT7hLrFQpsPiFf8WBLPIo5+K5NdhZDXFsaoGkpKIMqBAamMS/zfyPh0n5C1CWA13UWPtqEh7vh9011A6p5iGXD9+I8zRAkoe1sVirqQ+mcPXN0Et4Q24y8zqYFlbG14yLGZ9CWFfMP/Xfyoot49RRK2Mgp0g+hl+dnUCDglkIdCl5SdYJNXeOESKDyi57bqasycEyoXMi5S4yhdt07epJLZFIAy6iaeo6OEE92Yzt00TG6A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR02MB7256.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39850400004)(366004)(136003)(346002)(396003)(376002)(230273577357003)(230173577357003)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(55016003)(83380400001)(33656002)(86362001)(38070700009)(122000001)(166002)(26005)(38100700002)(9686003)(966005)(53546011)(6506007)(7696005)(2906002)(478600001)(6916009)(91956017)(41300700001)(76116006)(316002)(71200400001)(66556008)(66476007)(66446008)(64756008)(54906003)(66946007)(8936002)(4326008)(5660300002)(52536014)(8676002); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: PVQf/CpjoxQZGqowKpqLi+yKYxBbTr2t8kNOa6aVi5nKFsqUJ72IR2XKAVaWmkYJk7Uf/MTJdT2XuCfeeqgl+Oxk1olMQTedhDnUz9c4f5Rjh0eBWstpGqfrXxYwf7DxH+v+f0BSvBxx16Q7lxRW9j05EFtLjkSPBe4U9IxOcvKbf+UbO3wHo46igdwY6WWdqt+m4kI3EeB63C1LCHi0Zrw9RslAD5EJPV/pcZyNv5XnPLJV7BoCuPbDGOwoEt7Is2nvPIXAe5fPxSb6xkxFZY2dFGsem2v8G7eTyBgDLdkAPLFTgZWCpMwXOGfs0MZ/23QBKHUB734puftHE+kSAM2wZQ1Z/bJQ4VoM7scGH2URBQPTCxxzz9YybBAM3BGNrFqhHWngj9Oxvd0QI92y9u/n+UMHAJ1AeaQWymWoFH6R1i0Xo6vJAyr2WYiCed0LIa0g7glidojj5NDbVM5O58l75pG/8j8rCcBFBlzCtBhDoMPfeipe98THrOTCZc8eQTJAuIJpozU2Ob5V0coP95xacmSWWUNgAQbrjcKSkTTcRRsXSarD4TobnuVPesQVj6JsV9cpOqezE+oFuCu66PsjyonBPteyuyOW1tWLYaDGFeI+cPeUY2ecqZgZAugt5aP8pCxkHdLaBR1ZqtwaqJ2+Y5S5cM7f2M2kpageFX4EsfbVNinCJwolRsrGz7f6shit99085VPQA2FmM4Ak3a1me5Rgh2xIlUYxcwV7d2PlvnTKrw4lDvjHBAsB+DO2EUZuJMqg9qgZf9ACOT4gCrU8WlKo6LgkKoRqycs/qjSVhLPNB+Do1qT5VoCieTgbFKHIz7QI295+gdqMpH3Q+Gy54W/gXJqvNVsAFgHiDyUyBXhJSgRu4fbew7YfZxz9qddKWykyVhZJcsvpIK9HM39H1WnfF/eIZ5KVIpAufWlXEMnaZsBBPvH1FCDM4ci+wabXKx6VXRQFL1P7X5JNf2iewyeZ2EzKqvHsFna+XrdMFsZqE7BvwadZYsh6c+TgTUIiKzLr32IRKpJXTMdbwpISUtzxBu5FVEJGwkM2Duv4z1DLFEnaukqgTc4hMreei3Znl5NvVkqaKv70sHUveEjpRzu2jDviBIksk3L+fbERA9NffROPqmpXJrVeDVlhMtGh4fPynMr1BxOQcY9JOBAcpR9ccpYhDXBpSiwj1AeHTKJbpgTDuAZUhJNXOkCZRSiE+CifUEErXEmVi9jl2pkzMM8e841ulcBYRlPRN0FHlrC4xRHFVwYlNBTZEXLz0GQCntKTaQVwYSQ2LfFXha1AuDC/FIqJzV0Sh+w1OMR/HmxpgBpgwq9HxlWYu4hiJ/gaaZSSWYlbqYMk7bXqIoirLhroSKZMYmNH4K/IKd8vWr/0ZztZ1jQ4vnSCc6uryZ8V5qiU5OZgLv0YyZVzbUNjacDsOwQ/jhBPNn9GzoQQk8KEuP+gRJM2L4nkO5uzhxkDjQLd8WewGpFWZk/GGC1DeF2sQKj6QbdqBXZdK3RqDbCS41cctRVZtFZR2zoC19ifz/gKKSXNZQhdzx8+3oAPOkngIUJkf/+tI5XfkfniNMyO/DZ7Bb00MZtiixdIlgibPN/DxzqEDWslA6NcoA==
Content-Type: multipart/alternative; boundary="_000_PH0PR02MB7256FACC8FD6E1AAAB388365F27E2PH0PR02MB7256namp_"
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: v5gUirrtWVn94BfifEZBhY32CVdpXV/m8WXXKa1PhfPIU65nOG6/bZvvTm/vFiOpaYUnShZgo66kTw6TsDMCQz9nz5rhB+/LJd5l/JNDCCKDbTa1bDyqfSZUD8ahEv/zuEWH+WIkGSdk8kXpSpH/K37CjLdh4zoAP2RKvYtffAM16l1UbnJdHd7HX3gxG7QKFZU5eRiepr09zwzQcX3N5zYIEJOmkJY/ke/u4/bihaDDYepWU8DHAT08jEwiCcBk6mFOrRr9UxtmnqnNBO+bhabz4eCwvC7xZs4BbXKVk6HSWThsk6gOGmwrV8kPABOL5AZcsYr68ZsJPWijfl0U7c2mglUeE7S3laK8MRa4Ap7m70OjRXepmqc/zXsPd2XtS4INigAEZxTn3vJXDLhPe47P0X0kEf0+gQhu9kD0XABdN0CpzqGet2p+xdO3C7/lgkojw4jpFm22G5GTYsyD/URLfvXwi/b9DbCs3rlpyYf3p44Xcfu6j3Strd3j1z7RtHRlHvLpa98dfxKAeYdvmth3/v/SR6mZIUNGOdNV0ktDoLQ3HgZyvgGKbXUDSrd4M4ee0y8MrKVHSNPHXUaCcHs4mGCnCP0L5L4yIc28hMb9ruDeEuAuL8Dr2iweIVO1
X-OriginatorOrg: qti.qualcomm.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7256.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f677e57b-4f46-424d-4c50-08dc20b04183
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2024 09:54:16.4966 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zsjkbb56mEQBWezjrzmvUZVh3aY39SH2pp7JHas5/l16Hj1zqAk+N6k3RQEJWG2u5dQRIFSuUIMaye7Xf7P8SDN+O7SdRUSuWqxpe6V53wA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR02MB6468
X-Proofpoint-GUID: RBkXTDj06gog_CRs2TcMNkZuCcnDQrOZ
X-Proofpoint-ORIG-GUID: RBkXTDj06gog_CRs2TcMNkZuCcnDQrOZ
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-29_05,2024-01-25_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 mlxscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401190000 definitions=main-2401290070
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/BOekf6x2TC0lL18zwvlbiIgWAnM>
Subject: Re: [Json] [Cbor] 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: Mon, 29 Jan 2024 09:54:28 -0000

Yes.

I think the document should provide text something like the following:

“Note: Implementors are advised that the built-in numeric parsers in some programming implementations accept only a subset of the floating point syntax defined in [IEEE 754] and used in this document. In particular, care may be required with respect to supporting input with leading and/or trailing zeros.”

Might also be good to have a couple of examples which are known to fail with at least some language parsers. At least for myself, the first thing I do in an implementation is to implement all of the examples in an RFC as test cases, so this is an easy way to ensure that implementers catch any issues.

Best regards
Jeremy

On 27/01/2024, 16:45, "CBOR" <cbor-bounces@ietf.org> wrote:

WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.

On 2024-01-27, at 17:06, Jeremy O'Donoghue <jodonogh@qti.qualcomm.com> wrote:
>
> As a minimum there needs to be guidance about the use of in-built language numeric parsers and formatting in the text.

If it helps, this is what I did in Ruby (which allows all-zeros elision neither in the integer part nor in the fractional part) [1], slightly edited:

    if /p/i =~ text_value
      Float(text_value.sub(/x\./i, "x0.").sub(/\.p/i, ".0p”))
    else
      Integer(text_value)
    end

This uses case-insensitive matches (/p/i) for the presence of the character p or P (which distinguishes a hex float from a hex integer), for a dot right after the x or X, or a dot right before the p or P.

The equivalent for decimal floats is similar, but more intricately installed in the ABNF, please see [1].

Do you think this approach needs to be hinted at in the document?

Grüße, Carsten

[1]: https://github.com/cabo/edn-abnf/commit/8a5f56#diff-b8a7b57
_______________________________________________
CBOR mailing list
CBOR@ietf.org
https://www.ietf.org/mailman/listinfo/cbor