Subject: bug#55645: src/print.c; print_object changes make it impossible to compare elisp code across versions

From: Tom Gillespie <[email-masked]>
Date: Thu, 26 May 2022 08:56:19 -0700

> prin1 has never guaranteed that the printed representation would be
> stable across versions, so if it's worked for you, that's by accident.

It may not be meant to be stable but this behavior is unchanged since
at least emacs-23, and given that xemacs has the same behavior, I'm
guessing that this behavior has been stable for nearly 30 years.

If prin1 is not stable, is there a print that is expected to be stable?

> It would be possible to add something to control this details (via the
> new OVERRIDES parameter), but it doesn't feel like it'd be worth it,
> because, well, the representation isn't meant to be stable.

Whether it is meant to be stable or not it has been stable for at least
30 years. If there is no print variant that does have stability guarantees
then I think we do need a dynamic variable that would have the old
behavior when it was nil, like those listed in Variables Affecting Output
https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Variables.html