eval* crashes when handling exception
with-all-output-to-string
expects a thunk
, but eval*
calls it with (write-exception exn)
. This leads to a crash, for instance when it's called from geiser-autodoc
:
(geiser-autodoc '(chicken))
Error: (#f) "unbound variable": (geiser#cleanup-tasks)
Call history:
Error: call of non-procedure: #<unspecified>
Call history:
geiser/chicken/src/geiser/chicken5.scm:93: g168
geiser/chicken/src/geiser/chicken5.scm:93: ##sys#print
geiser/chicken/src/geiser/chicken5.scm:93: ##sys#print
geiser/chicken/src/geiser/chicken5.scm:96: chicken.condition#condition-property-accessor
geiser/chicken/src/geiser/chicken5.scm:93: g170
geiser/chicken/src/geiser/chicken5.scm:93: ##sys#print
geiser/chicken/src/geiser/chicken5.scm:93: chicken.base#get-output-string
geiser/chicken/src/geiser/chicken5.scm:93: scheme#display
geiser/chicken/src/geiser/chicken5.scm:97: scheme#newline
geiser/chicken/src/geiser/chicken5.scm:98: scheme#display
geiser/chicken/src/geiser/chicken5.scm:98: scheme#newline
geiser/chicken/src/geiser/chicken5.scm:99: chicken.condition#condition-property-accessor
geiser/chicken/src/geiser/chicken5.scm:99: g183
geiser/chicken/src/geiser/chicken5.scm:100: scheme#newline
geiser/chicken/src/geiser/chicken5.scm:104: chicken.port#with-output-to-string
geiser/chicken/src/geiser/chicken5.scm:106: chicken.port#with-error-output-to-port
I'll submit a patch for it. Tested using current emacs-geiser/chicken's master and CHICKEN 5.3.0.