Can be reproduced in 3.0.9 and not in 3.0.11.
Reproduce script:
--8<---------------cut here---------------start------------->8---
#!/bin/sh
GUILE="${GUILE:-$(command -v guile || command -v guile3.0)}"
if [ -z "$GUILE" ]; then
echo "Missing guile executable."
exit 1
fi
if [ ! -f "except.scm" ]; then
cat -> except.scm <<EOF
(define-module (except)
#:export (
start-main
))
(use-modules (rnrs conditions))
(define (func s)
1)
(define (main)
(func)
(display "test\n"))
(define (start-main)
(with-exception-handler
(lambda (c . more)
(display "Caught an exception!\n")
(when (message-condition? c)
(display c))
(newline))
(lambda ()
(main))))
EOF
fi
if [ ! -f "runn.scm." ]; then
cat -> runner.scm <<EOF
(set! %load-path (cons "." %load-path))
(use-modules (except))
(start-main)
EOF
fi
set -x
GUILE_AUTO_COMPILE=1 $GUILE -L . ./runner.scm
--8<---------------cut here---------------end--------------->8---
--
Olivier Dion