~ chicken-core (chicken-5) b3031e59cae47cd112acfe9e0b71cd61b9129cf1
commit b3031e59cae47cd112acfe9e0b71cd61b9129cf1 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Jul 6 15:32:13 2020 +0200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Tue Jul 14 20:56:20 2020 +0200 Make sure ##sys#repl-recent-call-chain is always set. Signed-off-by: Peter Bex <peter@more-magic.net> diff --git a/repl.scm b/repl.scm index 3fa2d3a2..b102b08f 100644 --- a/repl.scm +++ b/repl.scm @@ -128,15 +128,15 @@ (##sys#write-char-0 #\newline ##sys#standard-error) (write-err args))) (set! ##sys#repl-recent-call-chain - (or (and-let* ((lexn ##sys#last-exception) ;XXX not really right - ((##sys#structure? lexn 'condition)) - (a (member '(exn . call-chain) (##sys#slot lexn 2)))) - (let ((ct (cadr a))) - (##sys#really-print-call-chain - ##sys#standard-error ct - "\n\tCall history:\n") - ct)) - (print-call-chain ##sys#standard-error))) + (let ((ct (or (and-let* ((lexn ##sys#last-exception) ;XXX not really right + ((##sys#structure? lexn 'condition)) + (a (member '(exn . call-chain) (##sys#slot lexn 2)))) + (cadr a)) + (get-call-chain 0 ##sys#current-thread)))) + (##sys#really-print-call-chain + ##sys#standard-error ct + "\n\tCall history:\n") + ct)) (flush-output ##sys#standard-error)))) (lambda () (let loop ()Trap