[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

["R. Shapiro": CLOS in 7.2]



------- Forwarded Message

Date: Tue 19 Apr 88 17:38:22-EDT
From: "R. Shapiro" <RSHAPIRO@g.bbn.com>
Subject: CLOS in 7.2
To: 3600-users@g.bbn.com
cc: kanderson@g.bbn.com, mthome@g.bbn.com

If you're using CLOS in 7.2, you should be aware of the following:
a CLOS bug causes any entry into the debugger to generate
recursive errors (resulting eventually in a stack overflow &
leaving you in the unfriendly Emergency Debugger). You can fix
this by loading the file CLOS:CLOS;DEBUGGER-FIX. It will be made
a patch shortly, but until then you probably want to load this
file [an announcement will be made when the patch is made].
- -------

------- End of Forwarded Message

Here is clos:clos;debugger-fix.lisp:

;;; -*- Mode: LISP; Package: DEBUGGER; Patch-File: Yes; Syntax: Zetalisp -*-


;; True if frame is not just an internal frame of an interpreted function
(defun frame-interesting-p (frame
			    &optional (censor-invisible-frames *censor-invisible-frames*))
  (labels ((uninternalize-fspec (fspec)
	     ;; Internal functions of uninteresting functions are uninteresting
	     (if (and (listp fspec) (eq (first fspec) :internal))
		 (if (and (or (eq (fourth fspec) 'si:with-process-interactive-priority-body)
			      (eq (fourth fspec) 'si:with-process-non-interactive-priority-body))
			  (not (memq :process-priority *invisible-frame-types-to-show*)))
		     ;; These things aren't interesting
		     (return-from frame-interesting-p nil)
		   (uninternalize-fspec (second fspec)))
	       fspec))
	   (uninteresting-function-p (fspec)
	     (cond ((cl:hash-table-p *uninteresting-functions*)
		    (gethash fspec *uninteresting-functions*))
		   ((or (listp *uninteresting-functions*)
			(cl:vectorp *uninteresting-functions*))
		    (member fspec *uninteresting-functions*)))))
    (if (and censor-invisible-frames
	     (frame-invisible-p frame))
	nil
      (let* ((function (frame-function frame))
	     (fspec (uninternalize-fspec (function-name-for-debugger frame))))
	(and (neq fspec function)		;Not an unnamed LAMBDA expression
	     (not (uninteresting-function-p fspec))
	     (not (member fspec si:*digested-special-forms*)))))))