Hi,
Maxime Devos <maximedevos@telenet.be> skribis:
Interesting.
It’s a Guile bug, and a tricky one. Here’s what Andy wrote on IRC:
<sneek> civodul, wingo says: i believe it is a bug. in a pre-unwind handler,
you want to make it so that if it throws again, it is handled by the
handler that was current when the with-exception-handler was invoked
(the dynamically outer handler)
<sneek> civodul, wingo says: to implement this, when a throw first starts, we
capture the current handler stack, and arrange for subsequent throws
to resolve via that captured handler stack
<sneek> civodul, wingo says: but if there is an additional
with-exception-handler within the exception handler, that doesn't
augment the captured exception handler stack to which inner exceptions
will dispatch
<sneek> civodul, wingo says: the fix will be small but also gnarly :P will
take some thinking. there are funny interactions with delimited
continuations
I’ll defer to Andy to see what the best way to fix it is…
What’s frustrating is that I can’t think of a way to work around it,
except by changing ‘terminal-columns’ & co. to not use exceptions (or
introducing a variant that does that).
Thoughts?
Ludo’.