"Basil L. Contovounesios" writes: > I have a local WIP branch where I am refactoring parts of json.el to > improve performance, and avoiding the proposed copy-sequence is one of > the fixes. Large patch attached (fear not (too much); the bulk of it is new regression tests). CCing João because it also touches jsonrpc.el. The only backward-incompatible part of it should be the stricter number parsing. Until now[1], json.el accepted numbers with a leading plus sign, leading zeros, and no integer component, all of which are forbidden by the JSON spec[2] and rejected by Emacs' native JSON parsing functions. I was initially willing to ignore this according to "be liberal in what you accept and strict in what you output," but given that libraries are already treating json.el and json.c functions as interchangeable, I think json.el should be fixed. Who knows, it may even help to catch some bad JSON generation somewhere, somewhen. [1]: (json-read-number): New arg. Handle explicitly signed numbers. 7712319db8 2008-08-28 20:19:17 +0000 https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=7712319db8db97391059925b27ae71f304eee7d2 [2]: https://tools.ietf.org/html/rfc8259#section-6 > I've also found a couple of test JSON files to benchmark against. I downloaded the three large (sizes 617KB-2.2MB) JSON files here: https://github.com/miloyip/nativejson-benchmark/tree/master/data and ran the following benchmark: