On Feb 20, 2017, at 7:02 AM, Daniel Llorens <address@hidden> wrote:
On 20 Feb 2017, at 15:40, Matt Wette <address@hidden> wrote:
This code looks wrong to me: 3rd arg to catch is not a procedure. Am I missing something? It starts at line 113 in system/repl/error-handling.scm, guile-2.0.13:
(catch #t
(lambda ()
(with-default-trap-handler le-trap-handler
(lambda () (%start-stack #t thunk))))
(case post-error
((report)
(lambda (key . args)
(if (memq key pass-keys)
(apply throw key args)
(begin
(with-saved-ports
(lambda ()
(run-hook before-error-hook)
(print-exception err #f key args)
(run-hook after-error-hook)
(force-output err)))
(if #f #f)))))
. . .
each of the branches of the case returns a lambda (or throws an error). ‘catch’ is a normal procedure, so this looks ok to me.