[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#51037: [PATCH] Make `print-level` & `print-length` customizable in E

From: Michael
Subject: bug#51037: [PATCH] Make `print-level` & `print-length` customizable in ERT batch tests
Date: Tue, 26 Oct 2021 14:02:31 -0700
User-agent: mu4e 1.4.15; emacs 28.0.50

Gemini Lasswell <gazally@runbox.com> writes:

Michael writes:

My personal incliniation is to remove the `backtrace-line-length`
variable entirely, and make the `debug` package responsible for
controlling print-level so as to avoid 31919. But that's me: is
there a compelling use-case for backtrace.el working in terms of limiting line length rather than just using `print-le{ve,ength}`?

The motivation for `backtrace-line-length` was to find a compromise that made backtraces more user-friendly in interactive debugging for both
small and large data structures.  Setting `print-level` and
`print-length` too small will create a lot of ellipses in small data structures, making you have to expand those ellipses to see your data; setting those variables a little bit bigger will unleash exponential growth in line length for large data structures, causing delays of seconds to minutes when rendering and navigating your backtrace. The heuristics in `cl-print-to-string-with-limit` try to do a reasonable job with both small and large data structures, so the user can get on with debugging, rather than first having to figure out values of the `print-`
variables which will make debugging possible.

Another goal of backtrace buffers is to make the data structures
represented there be completely navigable, which is why lines are not
simply truncated.

If you don't want ellipses in your backtraces, then bind
`backtrace-line-length` to nil or zero. If you want to see how long a
backtrace line can get, try that out with magit or org-export.

lol... I see. So you found `backtrace-line-length` to be more
ergonomic than print-level & print-length at controlling
verbosity (at least where backtraces are concerned)-- fair?

One thing: when I evaluate this:

   (let ((print-length nil)
         (print-level nil)
         (backtrace-line-length nil))

I receive the following error message:

backtrace-print-frame: Wrong type argument: number-or-marker-p, nil

I take it that is unexpected? It's fine if so, I'm happy to
debug, I just want to be sure I'm not running off down the garden

Michael <sp1ff@runbox.com>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]