Raymond Toy <[EMAIL PROTECTED]> writes:
>>>>>> "Jim" == Jim Newton <[EMAIL PROTECTED]> writes:
>
> Jim> I quite often get problems trying to recompile or redefine functions
> Jim> that are being profiled. Is this just something one should never do
> Jim> or would it be considered a bug?
>
> Yes, it's a bug. No, I don't know why it happens or how to fix it.
Jim's backtrace shows that the CALLERS-P slot of PROFILE-INFO, which
is declared BOOLEAN, is initialized with something not being T or NIL.
I think this can happen in two places in profile.lisp.
--- profile.lisp 28 Sep 2004 18:43:26 +0200 1.39
+++ profile.lisp 26 Mai 2005 10:17:54 +0200
@@ -427,7 +427,7 @@
(unless names (return))
(let ((name (pop names)))
(cond ((eq name :callers)
- (setq callers (pop names)))
+ (setq callers (not (null (pop names))))
;;
;; Method functions.
#+pcl
@@ -542,7 +542,7 @@
(let (f)
(when (and (fboundp name)
(setq f (find-profile-fwrapper name)))
- (profile-1-function name (pi-callers (fwrapper-user-data f))))))
+ (profile-1-function name (pi-callers-p (fwrapper-user-data f))))))
(push #'re-profile-redefined-function ext:*setf-fdefinition-hook*)