Subject: bug#59540: Calling length on a very long improper list is disastrous.

From: lloda <[email-masked]>
Date: Mon, 12 Dec 2022 10:25:39 +0100

> On 10 Dec 2022, at 18:27, Ludovic Courtès <[email-masked]> wrote:
> 
> ...

> Of these only #2 is something we could work on.  However, truncation has
> proven to be a hindrance sometimes (in backtraces, objects are
> automatically), so I’m not sure we want to enable it by default on
> wrong-type-arg error messages.
> 
> Thoughts?
> 
> Ludo’.

There's previous discussion on this, going both ways.

I think excessive output is a more serious problem, because it should be possible to go to a backtrace frame and look at objects directly. On the other hand, it should also be possible to C-c when guile starts to flood the terminal. But neither of these workarounds is reliable :-/ Ultimately this printing should be configurable.

We already have the repl-option system (repl-option-set! repl 'print ...). This system doesn't apply to exception messages nor backtraces. I think if it did, that would mostly solve the problem.

I also think that, besides options to truncate or not, we should have a pager (display at most a page, give options to next/stop/all). That would be the best default.