Subject: Re: bug#40693: 28.0.50; json-encode-alist changes alist

From: Eli Zaretskii <[email-masked]>
Date: Wed, 29 Apr 2020 15:21:45 +0300

> Cc: [email-masked], [email-masked]
> From: Dmitry Gutov <[email-masked]>
> Date: Wed, 29 Apr 2020 15:08:57 +0300
> 
> > No one tried to come up with arguments why this has to be in emacs-27.
> 
> Let me try:
> 
> It fixes a bug, one which could be annoying to investigate, the fix is 
> small and localized to the case when json-encoding-object-sort-predicate 
> is non-nil (so pretty safe).

It also makes the function slower.  Which may be an important issue
for JSON processing.  Callers that don't care about the original list
will be "punished" regardless.

How about adding an optional argument instead, by default off, to
request this behavior?  then callers who care about the original alist
could request a non-destructive operation, and others won't suffer any
slowdown.

> It's not a regression from Emacs 26, though.

Right.