Philipp Stephani
schrieb am Mo., 18. Sep. 2017 um
15:26 Uhr:
> Philipp Stephani schrieb am So., 17. Sep. 2017 um
> 20:46 Uhr:
>
>> Ted Zlatanov schrieb am Sa., 16. Sep. 2017 um
>> 17:55 Uhr:
>>
>>> I wanted to ask if there's any chance of improving the parsing
>>> performance of JSON, YAML, TOML, and similar data formats. It's pretty
>>> poor today.
>>>
>>> That could be done in the core with C code, improved Lisp code,
>>> integration with an external library, or a mix of those.
>>>
>>
>> I don't know much about the others, but given the importance of JSON as
>> data exchange and serialization format, I think it's worthwhile to invest
>> some time here. I've implemented a wrapper around the json-c library
>> (license: Expat/X11/MIT), resulting in significant speedups using the test
>> data from https://github.com/miloyip/nativejson-benchmark: a factor of
>> 3.9 to 6.4 for parsing, and a factor of 27 to 67 for serializing. If people
>> agree that this is useful I can send a patch.
>>
>
> I've discovered that the interface and documentation of Jansson are much
> better than the ones of json-c, so I switched to Jansson. I've attached a
> patch.
>
Here's a newer version of the patch. The only significant difference is
that now the Lisp values for JSON null and false are :null and :false,
respectively. Using a dedicated symbol for :null reduces the mental
overhead of the triple meaning of nil (null, false, empty list), and is
more future-proof, should we ever want to support lists.