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

From: Tom Gillespie <[email-masked]>
Date: Sat, 28 May 2022 10:54:25 -0700

> If you're using prin1 as a way to compare stably differences between
> objects, this only works by accident: You have to be very lucky in which
> objects you have included in the output so far if you've managed to make
> this code work over time.

Ah I think I know what is missing here. I'm not trying to compare arbitrary
elisp objects. I'm explicitly only trying to compare literal emacs lisp source
code and that has been extremely easy since at least emacs 24 (iirc it is
also the same in 23). The only issue I have encountered was a change in
iirc 27 of the default value for print-escape-newlines or something like that.

> We can indeed add something that lets you control how symbols in
> specific are output by prin1, but I don't really see the utility in
> general -- because we have changed, and will change, how other objects
> are output by prin1, and if the objects you're outputting happens to
> contain these, your algo will break again.

These aren't arbitrary elisp objects, they are only objects that appear in
quoted elisp source code. There has been exactly one change in that
since emacs 24 (and possibly before), and it was a change where there
was already a variable to control the behavior.