From 07bb6dd424bc316e8fa7d7ce9fc59f6d03cc867c Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Wed, 11 Feb 2009 23:29:59 +0100 Subject: [PATCH] Allow entering the debugger when a form is evaluated in the compiler. --- src/cmp/cmputil.lsp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cmp/cmputil.lsp b/src/cmp/cmputil.lsp index 70cef73e6..d3d92b552 100644 --- a/src/cmp/cmputil.lsp +++ b/src/cmp/cmputil.lsp @@ -203,8 +203,12 @@ `(let* ((si::*break-enable* *compiler-break-enable*) (throw-flag t)) (unwind-protect - (multiple-value-prog1 ,main-form - (setf throw-flag nil)) + (multiple-value-prog1 + (if *compiler-break-enable* + (handler-bind ((error #'invoke-debugger)) + ,main-form) + ,main-form) + (setf throw-flag nil)) (when throw-flag ,error-form)))) (defun cmp-eval (form) @@ -212,7 +216,7 @@ (cmperr "The form ~s was not evaluated successfully.~ ~&You are recommended to compile again." form))) - + (defun cmp-macroexpand (form &optional (env *cmp-env*)) (with-cmp-protection (macroexpand form env) (cmperr "The macro form ~S was not expanded successfully.~