From: William Harold Newman Date: Mon, 30 Oct 2000 18:37:17 +0000 (+0000) Subject: 0.6.8.2: converted /SHOW to /SHOW0 in SUB-GC to avoid infinite regress X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=a30fb4f28fb891abc98eee8fdf99c2dbed2129de;p=sbcl.git 0.6.8.2: converted /SHOW to /SHOW0 in SUB-GC to avoid infinite regress --- diff --git a/NEWS b/NEWS index 8bdb4a6..294c656 100644 --- a/NEWS +++ b/NEWS @@ -525,10 +525,15 @@ changes in sbcl-0.6.8 relative to sbcl-0.6.7: changes in sbcl-0.6.9 relative to sbcl-0.6.8: -?? DESCRIBE now works on CONDITION objects. -?? The debugger now handles errors which arise when trying to print +* DESCRIBE now works on CONDITION objects. +* The debugger now handles errors which arise when trying to print *DEBUG-CONDITION*, so that it's less likely to fall into infinite regress. +?? The debugger is now better at walking down through the control stack + frames generated by signal handlers. In particular, compiling and loading + (DEFUN FAIL (X) (THROW 'FAIL-TAG X)) + (FAIL 12) + then requesting a BACKTRACE at the debugger prompt now gives useful output. ?? signal handling reliability ?? fixed some bugs mentioned in the man page: ?? DEFUN-vs.-DECLAIM diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp index a4d95df..f4b2044 100644 --- a/src/code/debug-int.lisp +++ b/src/code/debug-int.lisp @@ -38,24 +38,24 @@ () #!+sb-doc (:documentation - "All debug-conditions inherit from this type. These are serious conditions + "All DEBUG-CONDITIONs inherit from this type. These are serious conditions that must be handled, but they are not programmer errors.")) (define-condition no-debug-info (debug-condition) () #!+sb-doc - (:documentation "There is absolutely no debugging information available.") + (:documentation "There is no usable debugging information available.") (:report (lambda (condition stream) (declare (ignore condition)) (fresh-line stream) - (write-line "No debugging information available." stream)))) + (write-line "no debugging information available" stream)))) (define-condition no-debug-function-returns (debug-condition) ((debug-function :reader no-debug-function-returns-debug-function :initarg :debug-function)) #!+sb-doc (:documentation - "The system could not return values from a frame with debug-function since + "The system could not return values from a frame with DEBUG-FUNCTION since it lacked information about returning values.") (:report (lambda (condition stream) (let ((fun (debug-function-function @@ -3629,7 +3629,7 @@ results))) (nreverse results))) -;;;; MAKE-BOGUS-LRA (used for :function-end breakpoints) +;;;; MAKE-BOGUS-LRA (used for :FUNCTION-END breakpoints) (defconstant bogus-lra-constants diff --git a/src/code/early-extensions.lisp b/src/code/early-extensions.lisp index 0288453..1fa53ce 100644 --- a/src/code/early-extensions.lisp +++ b/src/code/early-extensions.lisp @@ -227,6 +227,7 @@ (let ((fun-name (symbolicate name "-CACHE-CLEAR"))) (forms `(defun ,fun-name () + (/show0 ,(concatenate 'string "entering " (string fun-name))) (do ((,n-index ,(- total-size entry-size) (- ,n-index ,entry-size)) (,n-cache ,var-name)) ((minusp ,n-index)) @@ -239,6 +240,7 @@ `(setf (svref ,n-cache ,i) ,val)) (values-indices) default-values)) + (/show0 ,(concatenate 'string "leaving " (string fun-name))) (values))) (forms `(,fun-name))) diff --git a/src/code/gc.lisp b/src/code/gc.lisp index 27d08c7..6cd611a 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -374,7 +374,7 @@ (incf *gc-run-time* (- (get-internal-run-time) start-time)))) ;; FIXME: should probably return (VALUES), here and in RETURN-FROM - (/show "returning from tail of SUB-GC") + (/show0 "returning from tail of SUB-GC") nil) ;;; This routine is called by the allocation miscops to decide whether diff --git a/version.lisp-expr b/version.lisp-expr index 1b37ed4..46c6fb7 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -15,4 +15,4 @@ ;;; versions, and a string a la "0.6.5.12" is used for versions which ;;; aren't released but correspond only to CVS tags or snapshots. -"0.6.8.1" +"0.6.8.2"