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


Mark O= teiza <mvoteiza@udel.edu> sc= hrieb am Mo., 18. Sep. 2017 um 16:28=C2=A0Uhr:
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--