X-Debbugs-CC: Robert Vollmert Hello, in the 1.0-beyond-discussions, Robert asked that Stacktraces should be more clear. I refer to this message (lists.gnu.org is down, so I cannot link): From: Ludovic Courtès To: Robert Vollmert Subject: Re: Guix beyond 1.0: let’s have a roadmap! Message-ID: <878stirsdc.fsf@gnu.org> Here is my example. I'm on top of 48eb71aea807262210c38b5fb675d747adfccff3 First the full stacktrace, below are some comments: ./pre-inst-env guix lint -c cve freecad Backtrace:reecad@0.18.2-1.dbb4cc6 [cve]... 11 (apply-smob/1 #) In ice-9/boot-9.scm: 705:2 10 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 9 (_ #(#(#))) In guix/ui.scm: 1668:12 8 (run-guix-command _ . _) In srfi/srfi-1.scm: 640:9 7 (for-each # ?) In guix/scripts/lint.scm: 1152:4 6 (run-checkers # ?) In srfi/srfi-1.scm: 640:9 5 (for-each # ?) In guix/scripts/lint.scm: 933:4 4 (check-vulnerabilities _) 928:9 3 (_ _) In unknown file: 2 (force #) In guix/scripts/lint.scm: 917:24 1 (_) In ice-9/boot-9.scm: 829:9 0 (catch srfi-34 # ?) ice-9/boot-9.scm:829:9: In procedure catch: In procedure connect: Connection timed out OK, this is semi-readable but I will explain a bit what I find strange/unreadable: In guix/scripts/lint.scm: 1152:4 6 (run-checkers # ?) --> OK: This is perfectly readable. I know in which procedure I am, in which line, the line matches my source code. Fine. In srfi/srfi-1.scm: 640:9 5 (for-each # ?) --> This is OK, though it could print the line of the procedure? In guix/scripts/lint.scm: 933:4 4 (check-vulnerabilities _) 928:9 3 (_ _) --> 933: Nice, I'm in check-vulnerabilities. But why is there no argument? --> What is this strange second line: (_ _)? Why is there nothing written? Is that due to tail-recursion? In unknown file: 2 (force #) --> Why is this in a "unknown file"? --> Is this force/promise making my stacktrace more unreadable? In guix/scripts/lint.scm: 917:24 1 (_) --> Uh. Any more details?. Is "(_)" the call to "(current-vulnerabilities*)"?! In ice-9/boot-9.scm: 829:9 0 (catch srfi-34 # ?) ice-9/boot-9.scm:829:9: In procedure catch: In procedure connect: Connection timed out --> Now, wait: The real problem happens somewhere down here and I don't have any detailed stacktrace about that? I have to manually go down into current-vulnerabilities*, call/nw/failsaife, etc? Why don't I get the details from here? Is this because in "call-with-networking-fail-safe", line 900 we through newly: (args (apply throw args)))))) but then the stacktrace gets lost? Would there be a throw-with-caused-by? Björn