On 2023-02-02 17:39:50 +0100, Jean Abou Samra wrote: > On 02/02/2023 17:11, Wolf wrote: > > Hello, > > > > I'm having a problem of getting borderline useless stack traces from a > > script > > executed via a shebang. For example, let's consider following script: > > > > $ cat /tmp/x.scm > > #!/bin/sh > > exec guile --no-auto-compile -e main -s "$0" "$@" > > !# > > > > (define (main args) > > (foo)) > > > > (define (foo) > > (bar)) > > > > (define (bar) > > (error "x")) > > > > When I execute it directly, the error message is not great: > > > > $ /tmp/x.scm > > Backtrace: > > In ice-9/boot-9.scm: > > 1752:10 4 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type > > _) > > In unknown file: > > 3 (apply-smob/0 #<thunk 7fdb1e7a2340>) > > In ice-9/boot-9.scm: > > 724:2 2 (call-with-prompt ("prompt") #<procedure 7fdb1e7b2c80 at > > ice-9/eval.scm:330:13 ()> #<procedure default-prompt-handler (k proc)>) > > In ice-9/eval.scm: > > 619:8 1 (_ #(#(#<directory (guile-user) 7fdb1e7a5c80>))) > > In ice-9/boot-9.scm: > > 2007:7 0 (error _ . _) > > > > ice-9/boot-9.scm:2007:7: In procedure error: > > x > > > > The /tmp/x.scm file is not even mentioned once in the output. Can this be > > somehow (command line arguments, changing the exec line, ...) improved? > > Currently it's not very useful when I need to find out what the problem was. > > > > This is a known issue for code that is evaluated, as opposed > to being compiled. Consider leaving out --no-auto-compile.
Oh, I was not aware of that. You suggestion does indeed make it better, thank you. ;;; note: source file /mnt/shared/system/./run ;;; newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/mnt/shared/system/run.go ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /mnt/shared/system/./run ;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/mnt/shared/system/run.go Now there is this output that as far as I know cannot be suppressed (that was the reason for --no-auto-compile), but that seems like lesser of two evils here. So, thanks :) W. -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.
signature.asc
Description: PGP signature