dynamic-wind added by mario-goulart on Fri Sep 13 11:33:16 2024

$ cat dw.scm 
(dynamic-wind
    (lambda () 0)
    (lambda () (error 0))
    (lambda ()
      (display "hi")
      (newline)))


$ guile dw.scm 
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/mario/tmp/gosling/dw.scm
;;; compiled /home/mario/.cache/guile/ccache/3.0-LE-8-4.6/home/mario/tmp/gosling/dw.scm.go
Backtrace:
In ice-9/boot-9.scm:
  1752:10  6 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
           5 (apply-smob/0 #<thunk 7fec1730d2e0>)
In ice-9/boot-9.scm:
    724:2  4 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 7fec17312c80>)))
In ice-9/boot-9.scm:
   2836:4  2 (save-module-excursion _)
  4388:12  1 (_)
In /home/mario/tmp/gosling/dw.scm:
     3:15  0 (_)

/home/mario/tmp/gosling/dw.scm:3:15: 0
hi


$ gsi dw.scm 
*** ERROR IN "dw.scm"@1.1 -- 0


$ csi -s dw.scm 

Error: 0

        Call history:

        <eval>    (chicken.load#load-unit (##core#quote expand) (##core#quote #f) (##core#quote #f))
        dw.scm:1          (dynamic-wind (lambda () 0) (lambda () (error 0)) (lambda () (display "hi") (newline)))
        dw.scm:2          (lambda () 0)
        dw.scm:2          (##core#lambda () 0)
        <syntax>          (##core#begin 0)
        dw.scm:3          (lambda () (error 0))
        dw.scm:3          (##core#lambda () (error 0))
        <syntax>          (##core#begin (error 0))
        dw.scm:3          (error 0)
        dw.scm:4          (lambda () (display "hi") (newline))
        dw.scm:4          (##core#lambda () (display "hi") (newline))
        <syntax>          (##core#begin (display "hi") (newline))
        dw.scm:5          (display "hi")
        dw.scm:6          (newline)
        dw.scm:1          (dynamic-wind (lambda () 0) (lambda () (error 0)) (lambda () (display "hi") (newline)))
        dw.scm:3          (error 0)     <--