|
From: | Michael |
Subject: | bug#51037: [PATCH] Make `print-level` & `print-length` customizable in ERT batch tests |
Date: | Tue, 26 Oct 2021 14:10:01 -0700 |
User-agent: | mu4e 1.4.15; emacs 28.0.50 |
Lars Ingebrigtsen <larsi@gnus.org> writes:
Michael <sp1ff@runbox.com> writes:The issue: stack traces are printed by the `backtrace` package. backtrace.el was authored by Gemini (which is why I'veadded him to this thread). backtrace.el doesn't directly work interms of `print-le{ngth,vel}`: it defines a custom variable `backtrace-line-length` and then adjusts print-level & print-length in let bindings in order to: 1. try to respect the desired line length 2. not trigger bug 31919 (Lisp Debugger doesn't work when at stack limit)[...]For myself, I was quite surprised to all learn this: I had to spend a fair bit of time digging through the source to find out what was happening to my settings for print-length & print-level.Yeah, I didn't remember `backtrace-line-length' either. Perhaps itshould be linked to from the doc strings of print-length andprint-level...
I was thinking to augment the docstring for `backtrace-line-lenght' to note that print-level & print-length will be overiden to honor it.
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: isthere a compelling use-case for backtrace.el working in terms of limiting line length rather than just using `print-le{ve,ength}`?Well... if we're talking in an ert context, it could increase both the backtrace-line-length and max-lisp-eval-depth variables when gatheringthe backtrace, I think?
The problem is that I can't know a priori how big I have to set them in order to honor print-level & print-length. I think I can short-circuit this entirely by setting `backtrace-line-length' to nil or zero before printing the backtrace from ert. eval-level shouldn't enter into it I think; the concern was that if code exceeded max-lisp-eval-depth, and the debugger was triggered, *then* backtrace.el might have problems. Do you see a reason to be concerned outside of that corner case? -- Michael <sp1ff@runbox.com>
[Prev in Thread] | Current Thread | [Next in Thread] |