The toplevel should only trap the SERIOUS-CONDITIONs

This commit is contained in:
Juan Jose Garcia Ripoll 2009-06-25 15:54:03 +02:00
parent d73d12ae35
commit 0a804a3b5b
2 changed files with 13 additions and 6 deletions

View file

@ -24,6 +24,10 @@ ECL 9.6.3:
- The compiler no longer enters the debugger when it finds an error
in the code it compiles.
* Visible changes:
- The toplevel only traps SERIOUS-CONDITIONS.
ECL 9.6.2:
==========

View file

@ -436,13 +436,16 @@ under certain conditions; see file 'Copyright' for details.")
(unless quiet
(break-where))
(flet ((rep ()
(handler-bind
((condition
;; We let warnings pass by this way "warn" does the
;; work. It is conventional not to trap anything
;; that is not a SERIOUS-CONDITION. Otherwise we
;; would be interferring the behavior of code that relies
;; on conditions for communication (for instance our compiler)
;; and which expect nothing to happen by default.
(handler-bind
((serious-condition
(lambda (condition)
(cond ((subtypep (type-of condition) 'warning)
;; We let warnings pass by this way "warn" does the work.
)
((< break-level 1)
(cond ((< break-level 1)
;; Toplevel should enter the debugger on any condition.
)
(*allow-recursive-debug*