0.8.12.17: Fix TRACE :BREAK T in the presence of package
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 4 Jul 2004 02:12:44 +0000 (02:12 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 4 Jul 2004 02:12:44 +0000 (02:12 +0000)
           locks and grap credit for package locks.

CREDITS
src/code/ntrace.lisp
tests/package-locks.impure.lisp

diff --git a/CREDITS b/CREDITS
index 16bc1fd..cef5117 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -668,7 +668,8 @@ Rudi Schlatte:
 
 Nikodemus Siivola:
   He provided build fixes, in particular to tame the SunOS toolchain,
-  and has fixed many (stream-related and other) bugs besides.
+  implemented package locks, and has fixed many (stream-related and 
+  other) bugs besides.
 
 Juho Snellman:
   He provided several performance enhancements, including a better hash
@@ -719,5 +720,6 @@ RAM  Robert MacLachlan
 PRM  Pierre Mai
 WHN  William ("Bill") Newman
 CSR  Christophe Rhodes
+NS   Nikodemus Siivola
 PVE  Peter Van Eynde
 PW   Paul Werkowski
index 588b30e..c5928dc 100644 (file)
          (let* ((bod (ecase loc
                        ((nil) exp)
                        (:encapsulated
-                        `(flet ((sb-debug:arg (n)
-                                  (declare (special arg-list))
-                                  (elt arg-list n)))
-                           (declare (ignorable #'sb-debug:arg))
-                           ,exp))))
+                        `(locally (declare (disable-package-locks sb-debug:arg arg-list))
+                           (flet ((sb-debug:arg (n)
+                                    (declare (special arg-list))
+                                    (elt arg-list n)))
+                             (declare (ignorable #'sb-debug:arg)
+                                      (enable-package-locks sb-debug:arg arg-list))
+                             ,exp)))))
                 (fun (coerce `(lambda () ,bod) 'function)))
            (cons exp
                  (lambda (frame)
index de47170..9a1b121 100644 (file)
                        ,form)))
              package-lock-violation))))
 
+;;;; See that trace on functions in locked packages doesn't break
+;;;; anything.
+(assert (trace test:function :break t))
+
 ;;; WOOT! Done.
 (sb-ext:quit :unix-status 104)