From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Mark Oteiza Newsgroups: gmane.emacs.devel Subject: Re: JSON/YAML/TOML/etc. parsing performance Date: Mon, 18 Sep 2017 10:28:18 -0400 Message-ID: <20170918142818.GA31178@holos.localdomain> References: <87poaqhc63.fsf@lifelogs.com> <87efr4jeh3.fsf@udel.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: blaine.gmane.org 1505744962 3471 195.159.176.226 (18 Sep 2017 14:29:22 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 18 Sep 2017 14:29:22 +0000 (UTC) User-Agent: Mutt/1.9.0 (2017-09-02) Cc: emacs-devel@gnu.org To: Philipp Stephani Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 18 16:29:09 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 1dtx2q-0000Kq-NY for ged-emacs-devel@m.gmane.org; Mon, 18 Sep 2017 16:29:08 +0200 Original-Received: from localhost ([::1]:36980 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dtx2y-0007yK-49 for ged-emacs-devel@m.gmane.org; Mon, 18 Sep 2017 10:29:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51724) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dtx2A-0007x8-DJ for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:28:27 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dtx24-0000X5-GM for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:28:26 -0400 Original-Received: from mail-qk0-x22c.google.com ([2607:f8b0:400d:c09::22c]:49812) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dtx24-0000Wy-Be for emacs-devel@gnu.org; Mon, 18 Sep 2017 10:28:20 -0400 Original-Received: by mail-qk0-x22c.google.com with SMTP id u67so679406qkg.6 for ; Mon, 18 Sep 2017 07:28:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=udel-edu.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=sYVyVAZcnniWtWTl42vsv+Eupi/j7QB3eM5Qb1chLn4=; b=pPtiLxcVI3YCfwRx1v0nFRGFydnCwCBTnlJkkolrGIBlQk2LzPyTqnkPVijHzLqCC0 jfw8aGDYOND3UNwhGGHxDGtuQKotlVXCQY8YMKaJpGHI37iZC/ppdGBYDsz3O60WdqWm l9orbBs0m9UOtl6UkHpP833+K98ZPtICzmEQ1HrzCO2Jlfxn4NoXQ/ZD1o0HencW3vy8 0jwZDKjMVULLvCboXzbEFu+QXKBTMitghwuEWigbL+cQvAKh+ASo+d4mNG975x70ZoOh IQE4nkeSwuXD88+Ic6am0kucNEUQ+dRD9LHzQNQ/deWJC1wg0OJO4iCmDPmZUMNIMvAE 8VYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=sYVyVAZcnniWtWTl42vsv+Eupi/j7QB3eM5Qb1chLn4=; b=ZwVdokQVOIrV4YfZ/W3Suxs37RyIA59c/asxP0O6GagPobVikfsmyy0vlx6oMOCUxk jFtkx2IH0+bp8Bc7iCDqxMj/Ml0m6pNABz0HTAKmh25/QM2X3XLBsL2VjLbwRo/eKFEQ kWSQS69m09M3BmjQM5sJTERkJi/vbS0G7Rz9NKm440sBL55adWUruvhfBXzqaOkszjT7 OHDQNQKa+Ilr5eRMd8jYRziKecYssqLH8PCsItXxRFnAA6ozFQmMJ2Y34b5wF2EREQ3L MfanbCtceJQm4/aAwV301uvg9aMGldsNq9nQcnz97dFTOttYSu9GgtCXTG0cOAKlkafu 8qvQ== X-Gm-Message-State: AHPjjUhyLdy3JlIlHYnj0Nd4KjodrRDPw+l/I98bNYujU6VSLyPcwpKi EMspuFVWslWK19Vu X-Google-Smtp-Source: AOwi7QBSOAa0VOufrTtXTU/lo7J4RyU2HQ6gAVc+3wZrIwVK75vu3EGK2scNwR87pC5nrTS7frw/zQ== X-Received: by 10.55.11.18 with SMTP id 18mr20869060qkl.216.1505744899564; Mon, 18 Sep 2017 07:28:19 -0700 (PDT) Original-Received: from holos.localdomain (pool-173-67-36-61.bltmmd.fios.verizon.net. [173.67.36.61]) by smtp.gmail.com with ESMTPSA id s11sm4416796qtk.42.2017.09.18.07.28.18 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Sep 2017 07:28:18 -0700 (PDT) Original-Received: by holos.localdomain (Postfix, from userid 1000) id 427C769594; Mon, 18 Sep 2017 10:28:18 -0400 (EDT) Content-Disposition: inline In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::22c 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:218461 Archived-At: 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.