[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
["R. Shapiro": CLOS in 7.2]
- To: CommonLoops.pa@Xerox.COM
- Subject: ["R. Shapiro": CLOS in 7.2]
- From: kanderso@WILMA.BBN.COM
- Date: Tue, 19 Apr 88 21:32:13 -0400
- Cc: CJoor@WILMA.BBN.COM, MThome@WILMA.BBN.COM, RShapiro@WILMA.BBN.COM, tmitchell@WILMA.BBN.COM, marcos@austin.lockheed.com, treinhardt@labs-n.bbn.com, gsmith@scotland.bbn.com, nlt@scotland.bbn.com, psykes@scotland.bbn.com, springen@austin.lockheed.com
- Redistributed: CommonLoops.pa
------- 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*)))))))