Subject: Re: bug#45032: 26.3; json-pretty-print of JSON with dict containing 't' as a key causes error

From: Philipp Stephani <[email-masked]>
Date: Sun, 6 Dec 2020 18:02:35 +0100

Am So., 6. Dez. 2020 um 14:37 Uhr schrieb Lars Ingebrigtsen <[email-masked]>:
>
> Philipp Stephani <[email-masked]> writes:
>
> >> I think it's important that native and Elisp JSON serialisation are as
> >> consistent as possible here;
> >
> > I don't think that's realistic: any change in behavior to either of
> > these functions would be a breaking change.
>
> I think we should have JSON/Elisp round trips that are 100%
> reproducible.  The current functions certainly aren't.

I don't understand why that is so important. I designed the C JSON
functions partially because I disagree with some aspects of API design
and behavior of the Elisp functions, so they are pretty much
incompatible on purpose. Trying to make them compatible would make the
C functions worse.
The one thing that I could imagine would be feasible would be:
(1) Document the precise behavior of the C JSON functions, including
all edge cases.
(2) Provide polyfills in Elisp that replicate that exact behavior.
(3) Deprecate the other Elisp functions.