Le dim. 14 juin 2020 à 19:47, Amirouche Boubekki
<xxxxxx@gmail.com> 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
Done.
> - 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:
https://github.com/scheme-requests-for-implementation/srfi-180/pull/5/commits/342dd784c3647cdc7ebb5704e0e225601a7c55e7
> - 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
DONE
>
> 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:
https://github.com/scheme-requests-for-implementation/srfi-180/pull/5/commits/68952e4a574feeadfd5027b2879037a65ec666e3
> Also, I would be very glad to have more feedback on json-fold specification.
Here is pull-request for easy read:
https://github.com/scheme-requests-for-implementation/srfi-180/pull/5