The call (exit (if #f #f)) near the end of repl.scm is a correct call, and Scheme dutifully calls all the dynamic-wind exit thunks, but then control returns to the Rust function tryand from there to try's continuation instead of exiting the program entirely.
Nesting the interpreter is the first bug. try is a bad primitive.
The call
(exit (if #f #f))
near the end of repl.scm is a correct call, and Scheme dutifully calls all thedynamic-wind
exit thunks, but then control returns to the Rust functiontry
and from there to try's continuation instead of exiting the program entirely.Nesting the interpreter is the first bug.
try
is a bad primitive.