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

From: Tom Gillespie <[email-masked]>
Date: Wed, 25 May 2022 16:12:02 -0700

The changes made in 637dde4aba921435f78d0de769ad74c4f3230aa6
make it impossible to use prin1-to-string as the basis for hashing elisp
code in a way that is independent of the emacs version.

The change completely breaks my orgstrap library across the 28 -> 29
boundary because the checksum computed on <= 28's prin1-to-string
and the checksum computed by 29's prin1-to-string no long match in
cases where there is a . or a ? in a symbol.

As implemented, there is no way to work around the issue, and I
suspect that many other users will be surprised and rather upset
by this change when they have the misfortune to encounter it.

At the very least this change in behavior needs to be configurable so that
the old behavior can be retained, preferably this change would be
reverted entirely as it does not address the original bug (bug#23130) and
is NOT low impact for users that actually use such functionality, whereas
the change is completely invisible to those that do not use such functionality.