X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fstale-symbols.lisp;h=e59e79595eedba1caf6d0a4a2b57a8aa46b7fc75;hb=3db292921fabecad0ba8107097d763ba2a044136;hp=374e83681aa5308acfb1301a55bb95cb862bddff;hpb=64fb1f750762dad66255d941292283b92ce9a078;p=sbcl.git diff --git a/contrib/stale-symbols.lisp b/contrib/stale-symbols.lisp index 374e836..e59e795 100644 --- a/contrib/stale-symbols.lisp +++ b/contrib/stale-symbols.lisp @@ -44,12 +44,12 @@ ((sb-c::compiled-debug-fun-p obj) (format stream "#" (sb-c::compiled-debug-fun-name obj))) - ((sb-kernel:code-component-p obj) - (format stream "#" - (let ((dinfo (sb-kernel:%code-debug-info obj))) - (cond - ((eq dinfo :bogus-lra) "BOGUS-LRA") - (t (sb-c::debug-info-name dinfo)))))) + ((sb-kernel:code-component-p obj) + (format stream "#" + (let ((dinfo (sb-kernel:%code-debug-info obj))) + (cond + ((eq dinfo :bogus-lra) "BOGUS-LRA") + (t (sb-c::debug-info-name dinfo)))))) (t (format stream "~w" obj)))) @@ -57,8 +57,8 @@ (declare (type symbol obj)) (let ((package (symbol-package obj))) (and package - (eq (nth-value 1 (find-symbol (symbol-name obj) package)) - :external)))) + (eq (nth-value 1 (find-symbol (symbol-name obj) package)) + :external)))) (defun find-stale-objects () (dolist (space '(:static :dynamic :read-only)) @@ -67,34 +67,34 @@ (declare (optimize (safety 0)) (ignore size)) (block mapper - (when (eql type sb-vm:symbol-header-widetag) - (ignore-errors - (let ((refs (let ((res nil) - (count 0)) - (dolist (space '(:static :dynamic :read-only)) - (sb-vm::map-referencing-objects - (lambda (o) - (when (> (incf count) 1) - (return-from mapper nil)) - (push (cons space o) res)) - space obj)) - res))) - (let ((externalp (external-symbol-p obj))) - (format t "~:[S~;External s~]ymbol ~:[#~;~:*~A:~]~2:*~:[:~;~]~*~A~%" - externalp - (and (symbol-package obj) - (package-name (symbol-package obj))) - (symbol-name obj))) - (if (null refs) - (progn (princ " No references found") (terpri)) - (progn - (ecase (caar refs) - (:read-only - (princ " Reference in read-only space: ")) - (:static - (princ " Reference in static space: ")) - (:dynamic - (princ " Reference in dynamic space: "))) - (print-stale-reference (cdar refs) t) - (terpri)))))))) + (when (eql type sb-vm:symbol-header-widetag) + (ignore-errors + (let ((refs (let ((res nil) + (count 0)) + (dolist (space '(:static :dynamic :read-only)) + (sb-vm::map-referencing-objects + (lambda (o) + (when (> (incf count) 1) + (return-from mapper nil)) + (push (cons space o) res)) + space obj)) + res))) + (let ((externalp (external-symbol-p obj))) + (format t "~:[S~;External s~]ymbol ~:[#~;~:*~A:~]~2:*~:[:~;~]~*~A~%" + externalp + (and (symbol-package obj) + (package-name (symbol-package obj))) + (symbol-name obj))) + (if (null refs) + (progn (princ " No references found") (terpri)) + (progn + (ecase (caar refs) + (:read-only + (princ " Reference in read-only space: ")) + (:static + (princ " Reference in static space: ")) + (:dynamic + (princ " Reference in dynamic space: "))) + (print-stale-reference (cdar refs) t) + (terpri)))))))) space)))