[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
["R. Shapiro": CLOS in 7.2]
- To: kanderso@wilma.bbn.com, CommonLoops.pa@Xerox.COM
- Subject: ["R. Shapiro": CLOS in 7.2]
- From: Scott McKay <SWM@SAPSUCKER.SCRC.Symbolics.COM>
- Date: Wed, 20 Apr 88 11:33 EDT
- 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
- In-reply-to: <880420-023535-1554@Xerox>
- Redistributed: CommonLoops.pa
Date: Tue, 19 Apr 88 21:32:13 -0400
From: kanderso@wilma.bbn.com
------- 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].
- -------
I don't understand what this fixes. How exactly is it that you manage
to get into FRAME-INTERESTING-P before BOOTSTRAP-*UNINTERESTING-FUNCTIONS*
ever gets run (since that is the only way *UNINTERESTING-FUNCTIONS* can
be a list instead of a hash-table)?
------- End of Forwarded Message
Here is clos:clos;debugger-fix.lisp:
;;; -*- Mode: LISP; Package: DEBUGGER; Patch-File: Yes; Syntax: Zetalisp -*-
In any event, the supplied fix is incorrect. For 7.2, it should at
least be this (changes in capital letters):
(defun (LFRAME-INTERESTING-P LISP-LANGUAGE-DEBUGGING-INSTANCE)
(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*))
(CL: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*)))))))
;; True if frame is not just an internal frame of an interpreted function
(defun frame-interesting-p (...)
...)