2016-10-01 01:57:24 |
Attila Lendvai |
description |
TOPLEVEL-REPL installs a (catch 'toplevel-catcher ...)
inside its LOOP. If any error nesting happens while inside that
LOOP (e.g. due to a "Broken pipe" on stderr, which is used by the
debugger), then when ERROR-ERROR throws 'toplevel-catcher
then it will only unwind until inside this LOOP, and thus the repl
will loop forever, busy printing errors.
to reproduce create a /tmp/test.sh:
#!/bin/sh
exec sbcl 2>&1 | tee /tmp/test.log
start it, and when the repl is up press Ctrl-C.
it should start busy loop printing errors in the terminal.
please before touching error-error consider merging this to spare
me some headaches: https://github.com/sbcl/sbcl/pull/3 |
TOPLEVEL-REPL installs a (catch 'toplevel-catcher ...)
inside its LOOP. If any error nesting happens while inside that
LOOP (e.g. due to a "Broken pipe" on stderr, which is used by the
debugger), then when ERROR-ERROR throws 'toplevel-catcher
then it will only unwind until inside this LOOP, and thus the repl
will loop forever, busy printing errors.
to reproduce create a /tmp/test.sh:
#!/bin/sh
exec sbcl 2>&1 | tee /tmp/test.log
start it, and when the repl is up press Ctrl-C.
it should start busy loop printing errors in the terminal. |
|