From mboxrd@z Thu Jan 1 00:00:00 1970
Path: news.gmane.org!.POSTED!not-for-mail
From: Philipp Stephani
Newsgroups: gmane.emacs.devel
Subject: Re: JSON/YAML/TOML/etc. parsing performance
Date: Mon, 18 Sep 2017 14:36:43 +0000
Message-ID:
References: <87poaqhc63.fsf@lifelogs.com>
<87efr4jeh3.fsf@udel.edu>
<20170918142818.GA31178@holos.localdomain>
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="001a1140f7b080ffb5055977ac85"
X-Trace: blaine.gmane.org 1505745422 9659 195.159.176.226 (18 Sep 2017 14:37:02 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 18 Sep 2017 14:37:02 +0000 (UTC)
Cc: emacs-devel@gnu.org
To: Mark Oteiza
Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 18 16:36:59 2017
Return-path:
Envelope-to: ged-emacs-devel@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
by blaine.gmane.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1dtxAN-0002EN-Lt
for ged-emacs-devel@m.gmane.org; Mon, 18 Sep 2017 16:36:55 +0200
Original-Received: from localhost ([::1]:37015 helo=lists.gnu.org)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from )
id 1dtxAU-0003qA-VD
for ged-emacs-devel@m.gmane.org; Mon, 18 Sep 2017 10:37:02 -0400
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54382)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from ) id 1dtxAO-0003pY-2T
for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:36:57 -0400
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
(envelope-from ) id 1dtxAN-0004IO-44
for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:36:56 -0400
Original-Received: from mail-io0-x22e.google.com ([2607:f8b0:4001:c06::22e]:46348)
by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
(Exim 4.71) (envelope-from )
id 1dtxAM-0004IA-ND
for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:36:54 -0400
Original-Received: by mail-io0-x22e.google.com with SMTP id d16so2576263ioj.3
for ; Mon, 18 Sep 2017 07:36:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to
:cc; bh=Ad5OtR/IBxp68C0DFu9Lomdf1lUrF9ZRiPCnKn52RRY=;
b=YsKPrt5J2+CCQpb22mpHerxYgMlEbkvZ5rQtsF36KCoAbRQcMamrjoYRdxjNGOFRrU
icCATeDy6H/ybn4zOZbyuqfTCAiDhksNPUaQ775KauRDmoYHyFoOoabCw9omhOsm23jx
SDukBiybJrswRTe7WD+nrczsZ+AGpEaBrBeCjZjhGC3yT0RPevcTkrtXy31ExvrMkm6Y
jQ4nPUcpdBh+c9y5ApYgxQ7hGiylaX13x6LxYllqUejYViFSyrVilIxgetesqDGq4PWr
e3AzjHDod+Sy6pQ8GHHDq6uiHiimR9vXgBhKw5sBR9CX/Q/PFEYiXM5/d0TqessHExQn
MI8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to:cc;
bh=Ad5OtR/IBxp68C0DFu9Lomdf1lUrF9ZRiPCnKn52RRY=;
b=Kvg5b4aNnHlzpK7fmGFCDODA82+gcCVsLR4tT4Sdxq9xl3jIA0bwHIZCwaXZYpmd5j
FJGOigMLIeNqCVRTtEpDcfcuO3KKa/t1NZBaEBCPN1iezqzhuREUhrz0I5ETjU3Z89ip
WrEHhtjR73UG4+HaUQfRp30tlzTaWrLzKbIualpB0UVgiNiC4hRMKsOcju+i8TwH0bmj
0DPuvvz3Hsi0M1RVqJ1kiofsVHkQR7NPXMDeAzV7PhFEzNx5s1msRhcWXl/zNGMEqpd7
eq5QlC7dirMMABUD/75e2MBXK9ySnmLMvPbi+oiChiPRtOX188ELE761slPr2I+kvSuk
8d1A==
X-Gm-Message-State: AHPjjUiOVV+fTZ7xW/zBWMtnW4vXY/LAxyiDXTNvqvOH2INM0jigugFE
6M73vHbgNGVfyC4jmuPRSDbrQ31DIvKmw0gOC2YBOQ==
X-Google-Smtp-Source: AOwi7QC9iwiamZG+BF2Pe1mI/nbGcED0Kg12RU7q49tkJ6H0uVlfgC66N2cMv2+NrUpPx8xDqOQ332ElSjZugVo/LY0=
X-Received: by 10.202.102.194 with SMTP id m63mr8656024oik.296.1505745413664;
Mon, 18 Sep 2017 07:36:53 -0700 (PDT)
In-Reply-To: <20170918142818.GA31178@holos.localdomain>
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
recognized.
X-Received-From: 2607:f8b0:4001:c06::22e
X-BeenThere: emacs-devel@gnu.org
X-Mailman-Version: 2.1.21
Precedence: list
List-Id: "Emacs development discussions."
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org
Original-Sender: "Emacs-devel"
Xref: news.gmane.org gmane.emacs.devel:218462
Archived-At:
--001a1140f7b080ffb5055977ac85
Content-Type: text/plain; charset="UTF-8"
Mark Oteiza schrieb am Mo., 18. Sep. 2017 um 16:28 Uhr:
> On 18/09/17 at 02:14pm, Philipp Stephani wrote:
> > Mark Oteiza schrieb am Mo., 18. Sep. 2017 um 15:58
> Uhr:
> >
> > > Was there a particular reason (aside from access time) you chose
> > > hash tables instead of a sexp form?
> >
> > - Hashtables have similar constraints as the underlying JSON objects (no
> > duplicate keys, no ordering), so they are a better match.
> > - Hashtables have non-nil empty values. If I had uses alists, I would
> have
> > had to introduce a separate keyword :json-null for null.
> > - Hashtables always represent maps, but alists are also normal sequences,
> > so users could expect that they get translated into arrays instead of
> > objects.
> > - Using only one data structure per JSON object type makes the interface
> > and implementation simpler.
>
> Makes sense and I agree, thank you. Thanks for the patch.
>
Thanks for the review; pushed to master as cb99cf5a99.
--001a1140f7b080ffb5055977ac85
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On 18/09/17 at 02:14pm, Philipp Stephani wrote:
> Mark Oteiza <mvoteiza@udel.edu> schrieb am Mo., 18. Sep. 2017 um 15:58 Uhr:
>
> > Was there a particular reason (aside from access time) you chose<=
br>
> > hash tables instead of a sexp form?
>
> - Hashtables have similar constraints as the underlying JSON objects (=
no
> duplicate keys, no ordering), so they are a better match.
> - Hashtables have non-nil empty values. If I had uses alists, I would =
have
> had to introduce a separate keyword :json-null for null.
> - Hashtables always represent maps, but alists are also normal sequenc=
es,
> so users could expect that they get translated into arrays instead of<=
br>
> objects.
> - Using only one data structure per JSON object type makes the interfa=
ce
> and implementation simpler.
Makes sense and I agree, thank you.=C2=A0 Thanks for the patch.
Thanks for the review; pushed to master as cb99cf5=
a99.=C2=A0
--001a1140f7b080ffb5055977ac85--