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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 01 Mar 2023 18:01:24 +0200

> Date: Wed, 1 Mar 2023 15:22:29 +0000
> Cc: [email-masked], [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> > And what use is the meaningless stream of raw bytes that prin1
> > produces?
> 
> If that were indeed what was produced, none at all.  Because
> debug-early-backtrace binds print-escape-control-characters to t, what
> actually gets produced is a mixture of ascii characters and octal
> escaped representations, just like you see when an .elc file is visited
> in Emacs.

Escaping raw bytes doesn't make them more comprehensible.

> > I think you should re-evaluate your preferences, and base them on real
> > advantages and disadvantages, not on imaginary ones.
> 
> What makes you think I'm not doing this already?  I wrote debug-early
> last year because I _needed_ it.  I've a lot of experience using it, and
> the way it prints (or rather used to print) a compiled function is/was
> useful.

For you, maybe.  Not for me.  For me it's a nuisance.  A useless waste
of screen estate.

> You can see how many arguments it takes.

That information exists elsewhere.

> You can see the byte code string, hence enabling you to compare it
> visually with the contents of a .elc file, should such already
> exist.

Let's be serious, okay?

> > If we want our backtraces to be more informative, not less, we should
> > move farther away of "dumb" output functions that just spill the guts
> > and towards more humanly-readable formatted description of the called
> > functions.
> 
> A wholesome long term goal I fully agree with.  For the here and now,
> outputting "#f(compiled-function () <random hex address>" and nothing
> else is not a step in that direction.

But using cl-prin1 _is_ a step in the right direction, because it
allows us to extend the feature.  And that is why I said that if
loading Lisp breaks something in debug-early, we should solve this
_now_, not fall back on prin1, which by its very nature cannot be
extended so easily.

> Besides, the idea of debug-early is to generate a backtrace before all
> the fancy Lisp facilities are available.

Some fancy Lisp facilities are already available anyway.  And I see no
reason for this requirement in this case.