From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: I created a faster JSON parser Date: Fri, 08 Mar 2024 21:28:27 +0800 Message-ID: <87y1asyhs4.fsf@yahoo.com> References: <87a5n96mb5.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20042"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: "emacs-devel@gnu.org" To: =?utf-8?Q?Herman=2C_G=C3=A9za?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 08 14:29:47 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1riaIE-00055D-UK for ged-emacs-devel@m.gmane-mx.org; Fri, 08 Mar 2024 14:29:46 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1riaHa-0001XO-IU; Fri, 08 Mar 2024 08:29:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1riaHZ-0001XF-GQ for emacs-devel@gnu.org; Fri, 08 Mar 2024 08:29:05 -0500 Original-Received: from sonic316-20.consmr.mail.ne1.yahoo.com ([66.163.187.146]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1riaHV-0003YX-E3 for emacs-devel@gnu.org; Fri, 08 Mar 2024 08:29:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1709904537; bh=MzKTF5fJqtq4XNsgYlN/ZT84JVxCTNJ+cUDOY/Z627U=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=sxnGAnmrpa6DD0pZe9tPzFl4D77KHKbVBHWy0vcMwQ7bQJUCcV020VVC9RXBYqnBJJI7qA2W/NuGI+PlCereiU8I6WKSvDPg5IB48hTkjeXB4dNdVn792pgOsADvTrJGo62bRmwQw4TsB+jNgBGHUnpQBc9QeQdHJrNWFMsg1ngbvvGgqZOUiCfF7uP6qXE2W2Dl+dvXBcUk55mkuEidmN3v/PzzBV3uR7M7lsumK59dTKt93G1M3lHCMjxVs+vEpgF4W3mWgqz9Z/hmWdA0jOviRKLTBlmWgUrxOLpmzyBTa1n3XKfOTMnWdLF1oPpiyh1i9NcUBQdvfHeH7sQZ2w== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1709904537; bh=EBqdiv1TI5UpqFgk3VwMuXl6+gMw/ozVTUVHnoUp+5d=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=cYpVhNmN5AkEh/9CK67OXl5ES8ahxSlMVeA0EBdtvTl+/v8bAjB4v7HUPZzvCFyJr901dHv8st+MCyIsmyzPYjo/Er2pvfjh4EdYF44WTxxGVl+zP06KikZC4LjM3sKrt0CKQx2n4UH6aaOeQ4ur7GJR1FtxUbnGD1ewe6l6Qn0WsOppNAX4xsn2pwf7bfkqM7A/6Nua/ct1lxuYRoOG3siX3ki5TwblEyJF6LC8MVizBfT+l6h9VEN1T2NBRsHZjgNWI55FlO/T6juIvmF1wjpxQcl2ljTXnkLhlARsnZm8sPDg7XuvhSFHU1W7HqFtN2b4IRROlpujn6kG6QapXw== X-YMail-OSG: 7k4Qo20VM1nDjXX8Wrro8eo2uj2VqVUf4xEwB4gliBUKh3n5SoPealsMWGze9jv OxvTb4qAxIjkSMkVu.D.xON6xECSXhrhYaNcZSRiZihKijohrihF_b2dDTak1RPDDIg10g1_oodc eLsGNWTWEqvvZcLEWCi2hZ6cyzXP3BoLeO3sfAhKchMzgUyXOhhZc2mYFgl4ZP63dQQ_90_hE8J9 BQ.bzXQ8HrPDN9KePnKqKGfZwcF6Qr1COl7l092oCOzY5XkW7kXesdTdAPH4.lig5hCYI5RIj7es bT_fmZpTvdM7hDRD2SDLujn_1ZiPncvMuASbktdz6wenmDuXc5wD0ZjS9nPyb4XvuF__trBrNZ.k bKA8MWPdGTTRYKpZmV4znykHwUwGJmKP2ISABo85_Nxs8Vu.M3pgmH7B6ccXzAmZSdYZKXqjKVnr BoL1aH7BSWMxJuK6gDv72DoPgymZ.Zw5Q0I0mkuXotnO1NMyikBM2Ax.LHX9nn47RdeHd3vpKVah C_14wLRL165R4L5D2s4RNF1Lj0YMA7vupua8tRlKy8Xo1g1lVG37Z7s5ZOnx1dbM1D8_FqNfzAYG JfywZ6HDE_L3E6Kv9Iz11h4rAULzXw61Axjoql.T_pW6sRlleoS0jWMhDnmW.uCzGgdwG32c6dU_ gZRkdmhboxMRTdegktyZHANR5QF1.U_2jC5OjJAOp8E3SnkfGC8PM6pr8PxCa5DiLcL5quqnIZo0 xWBkB2GFNld.1OLZkfMyEgmXHrg6SxMu2LmLXMBS_QxGiyRavcqXnEZyQBFFInN9dCebQDOsGra9 gw5AXGFUs0ObZPT7IoQgAgx4ch2FmNg.cJZ6GkiezA X-Sonic-MF: X-Sonic-ID: 760ee7e9-db14-40cc-b3ff-5958bf461e12 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.ne1.yahoo.com with HTTP; Fri, 8 Mar 2024 13:28:57 +0000 Original-Received: by hermes--production-sg3-6dc75bc8fb-ddr5z (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 203e4b193a139ab055e4450e46f08cf7; Fri, 08 Mar 2024 13:28:53 +0000 (UTC) In-Reply-To: <87a5n96mb5.fsf@gmail.com> ("Herman, =?utf-8?Q?G=C3=A9za=22's?= message of "Fri, 08 Mar 2024 11:27:16 +0100") X-Mailer: WebService/1.1.22129 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.187.146; envelope-from=luangruo@yahoo.com; helo=sonic316-20.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:316910 Archived-At: "Herman, G=C3=A9za" writes: > I created a faster JSON parser for emacs, you can check it out here: > > https://github.com/geza-herman/emacs/tree/faster-json-parsing > > It replaces json-parse-string and json-parse-buffer functions. The > behavior should be the same as before, with the only exception that > objects with duplicated keys are not detected if :object-type is not > 'hash-table. > > This parser runs 8-9x faster than the jansson based parser on my > machine (tested on clangd language server messages). An additional > tiny benefit is that large integers are parsed, instead of having an > "out of range" error. > > What do you think? Speed aside, this change eliminates an external dependency from Emacs, which is a great service to us in its own right. Thank you! Nevertheless, there are several coding style issues that should be resolved, viz. the presence of redundant opening braces and ternary or nested binary operations not enclosed in parentheses, and the size of the change is such that its copyright must be assigned to the FSF. Please see that these are addressed, and thanks again.