Subject: bug#61847: debug-early-backtrace only works some of the time.

From: Eli Zaretskii <[email-masked]>
Date: Tue, 28 Feb 2023 16:22:30 +0200

> Date: Tue, 28 Feb 2023 13:16:42 +0000
> Cc: [email-masked], [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> > It isn't clear to me why you consider code that uses prin1 to be "rock
> > solid by design".  Please elaborate.
> 
> I meant that the specific piece of code which was the original code
> (which happened to use prin1) was rock solid, not any other use of prin1.
> 
> The original code didn't depend on any other lisp being loaded.  Given
> how much can go wrong with loading Lisp in the early bootstrap in a
> version of Emacs being debugged, and which did go wrong in the bug
> scenario, I say we're better off not trying to use cl-prin1 at this
> stage.

If you think that the original code is solid because no Lisp is
loaded, then all it takes to break that is that someone rewrites prin1
in Lisp.  Which happened with quite a few primitives in recent years,
and so it can happen with prin1 as well.  And if that does happen with
prin1, who will remember that this particular piece of code cannot
stand loading Lisp and will subtly break if that happens?

So if this feature needs some precautions when loading Lisp, we had
better introduced those precautions now, and tested them with Stefan's
code which uses cl-prin1 to make sure it works.  That way we will have
a more future-proof feature.