Thanks for the mention. I have managed to squeeze another 10% out of my test bed code, but that was at quite some expense of readability (no character peeking, byte-based I/o where it makes sense, some heuristics changes). I will try to prettify it and send you the link later on.
We are roughly half as fast as rackets JSON module running in racket-cs, which is not bad! Regarding our (ice-9 match) slowness: I wrote a patch for reducing equal? with a char literal to eqv?, but it was so hideous that Andy wrote a proper patch for it, and from guile 3.0.3 equal? and eqv? will be reduced to faster equality checking for suitable literals! Everybody wins! -- Linus Björnstam On Sun, 17 May 2020, at 08:42, Aleix Conchillo Flaqué wrote: > Hi! > > I'm super excited to announce guile-json 4.0.0. This new version comes with > a couple of small breaking changes and huge performance improvements (up to > 6x faster). > > Huge thanks to Linus Björnstam who brought up the performance issues plus a > bunch of suggestions of how to improve them and followed along all the way. > > * About > > guile-json is a JSON module for Guile. It supports parsing and building > JSON documents according to the http://json.org specification. > > - Complies with http://json.org specification. > - Builds JSON documents programmatically using scheme data types. > - Allows JSON pretty printing. > > * Download > > Compressed sources and a GPG detached signature[*]: > > http://download.savannah.nongnu.org/releases/guile-json/guile-json-4.0.0.tar.gz > http://download.savannah.nongnu.org/releases/guile-json/guile-json-4.0.0.tar.gz.sig > > [*] To verify download both files and then run: > > gpg --keyserver keys.openpgp.org \ > --recv-keys 7CEC5511C8D057A9EF17470C54D4CC6FFC7468F4 > > gpg --verify guile-json-4.0.0.tar.gz.sig > > * Changes since 3.5.0 > > https://github.com/aconchillo/guile-json/blob/master/NEWS > > Bugs and comments can be reported at > https://github.com/aconchillo/guile-json/issues > > Happy hacking! > > Aleix >