Summary Amirouche Boubekki (14 Jun 2020 17:48 UTC)
Re: Summary Amirouche Boubekki (14 Jun 2020 19:07 UTC)
Re: Summary Amirouche Boubekki (20 Jun 2020 08:18 UTC)
Re: Summary John Cowan (20 Jun 2020 15:40 UTC)

Re: Summary Amirouche Boubekki 20 Jun 2020 08:18 UTC

Le dim. 14 juin 2020 à 19:47, Amirouche Boubekki
<> a écrit :
> I would like to summarize my current thoughts about thefold next draft
> of JSON specification:
> - I will add support of JSON Sequence RFC 7464

See the other email, in the thread with subject line "additional
comments". The question is: can we ignore RS all the time?

> - I am willing to drop json-tokens and json-generator because they are
> too low level and specific about the actual JSON parsing algorithm

I removed json-tokens from the specification and public interface.
json-generator stay around obviously because otherwise it would not be
a json stream reader.

> - I may add a limit on the count of characters just as reminder that
> it possible to shoot yourself in the foot while reading some JSON text


> - It seems to me, it possible to parse json objects into scheme
> records with the current implementation of json-fold

I added a test for a naive case that reads a record:

> - The depth limit is easier to setup than the characters limit, so I
> want to keep it. I agree depending on the Scheme implementation,
> +inf.0 may be too big, the actual value is implementation specific,
> the specification suggest +inf.0


> Also, most importantly, even if the sample implementation pass all the
> tests, I found a bug while parsing JSON lines [0] so it might a good
> thing to go through a JSON fuzzer but I did not find one yet. Fixing
> the bug discovered with JSON lines, lead to a new implementation of
> json-read (that use json-fold) and the specification should be
> updated.

Left as an exercise to the reader, anyway, it only concerns the implementation.
Here is another bug that went through the test suite:

> Also, I would be very glad to have more feedback on json-fold specification.

Here is pull-request for easy read: