Subject: Re: bug#40008: Backtraces can contain very long strings

From: <[email-masked]>
Date: Tue, 10 Mar 2020 12:47:11 +0100

On Tue, Mar 10, 2020 at 11:05:24AM +0100, Jan Synacek wrote:
> I have the following backtrace:
> 
> Backtrace:
> In ice-9/boot-9.scm:
>   1736:10  9 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
>            8 (apply-smob/0 #<thunk 651b40>)
> In ice-9/boot-9.scm:
>     718:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
>     619:8  6 (_ #(#(#<directory (guile-user) 74cf00>)))
> In ice-9/boot-9.scm:
>    2806:4  5 (save-module-excursion _)
>   4351:12  4 (_)
> In /home/jsynacek/./git.scm:
>      72:0  3 (_)
>     61:16  2 (change-spec _ _ "66.33" _ #<output: file 1>)
>     48:12  1 (change-release "# We ship a .pc file but don't want t…" …)
> In unknown file:
>            0 (make-regexp "^Release:(\\s*).*$" "# We ship a .pc fil…" …)
> 
> ERROR: In procedure make-regexp:
> Wrong type (expecting exact integer): "
> <HERE COMES A LOOOONG STRING WHICH IS ABOUT 193000 CHARACTERS WIDE>
> "
> 
> While this is probably not considered an error, I guess it might be better
> to ellipsize strings in errors such is mine that are over a certain length
> long. The important part of the backtrace was scrolled away and I got
> confused about the string, as I thought it was part of the output and
> started wondering why (display ...) keeps the escaped newlines in the
> string.

Some want it, some want it not. I remember a couple of discussions
in guile-user and guile-devel about this topic.

Have you tried setting debug options `width' and/or `depth' (cf. procedure
`debug-options')?

(my current defaults are 79 columns/20 rows, this is Guile 3.0).

> If this is not considered a bug, please, at least consider it an RFE.

I guess one could argue about the current defaults, but it'll be
difficult to find values making all people happy all the time.

Cheers
-- t