diff --git a/changelog b/changelog index 1f43604..0ad9d34 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20100310 tpd src/axiom-website/patches.html 2010310.01.tpd.patch +20100310 tpd src/interp/vmlisp.lisp fix )set break resume bug 20100309 tpd src/axiom-website/patches.html 2010309.01.tpd.patch 20100309 tpd src/input/wester.input reformat into regression test file 20100306 tpd src/axiom-website/patches.html 2010306.01.tzk.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 7eab972..b73ed8a 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2513,5 +2513,7 @@ src/axiom-website/download.html git-clone to git clone
books/bookvol5 treeshake vmlisp, bookvol10.3 defstream bug fix
20100309.01.tpd.patch src/input/wester.input reformat into regression test file
+20100310.01.tpd.patch +src/interp/vmlisp.lisp fix )set break resume bug
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet index 9fed12e..a0822d5 100644 --- a/src/interp/vmlisp.lisp.pamphlet +++ b/src/interp/vmlisp.lisp.pamphlet @@ -4576,12 +4576,30 @@ terminals and empty or at-end files. In Common Lisp, we must assume record size (load eval) (unembed 'system:universal-error-handler) (embed 'system:universal-error-handler - '(lambda (type correctable? op continue-string error-string &rest args) - (block - nil - (setq |$NeedToSignalSessionManager| T) - (apply system:universal-error-handler type correctable? op - continue-string error-string args ))))) + '(lambda (type correctable? op + continue-string error-string &rest args) + (block + nil + (setq |$NeedToSignalSessionManager| T) + (if (boundp '|$BreakMode|) + (cond ((eq |$BreakMode| '|validate|) + (|systemError| (error-format error-string args))) + ((and (eq |$BreakMode| '|trapNumerics|) + (eq type :ERROR)) + (setq |$BreakMode| nil) + (throw '|trapNumerics| |$numericFailure|)) + ((and (eq |$BreakMode| '|trapNumerics|) + (boundp '|$oldBreakMode|) + (setq |$BreakMode| |$oldBreakMode|) + nil)) ;; resets error handler + ((memq |$BreakMode| '(|nobreak| |query| |resume|)) + (|systemError| (error-format error-string args))) + ((eq |$BreakMode| '|letPrint2|) + (setq |$BreakMode| nil) + (throw '|letPrint2| nil)))) + (apply system:universal-error-handler type correctable? op + continue-string error-string args ))))) + ;;; @(#)debug.lisp 2.5 90/02/15 10:27:33