From: Tobias C. Rittweiler Date: Sat, 20 Mar 2010 16:08:06 +0000 (+0000) Subject: 1.0.36.35: More accurate WHO-CALLS / WHO-EXPANDS information X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=768d7b3a9bcdd648c51fb7fcecc3b4cdd8cbb816;p=sbcl.git 1.0.36.35: More accurate WHO-CALLS / WHO-EXPANDS information * Fix for .34 which also affects WHO-EXPANDS; instead of pointing at the toplevel form, actually point into the right subform. * Bug due to typo: CDDR was used instead of CADDR. --- diff --git a/NEWS b/NEWS index f94e99c..9dbda2a 100644 --- a/NEWS +++ b/NEWS @@ -59,6 +59,8 @@ changes relative to sbcl-1.0.36: &REST and &KEY in lambda-list caused miscompilation (lp#458354) * bug fix: WHO-CALLS information for source-transformed and compiler-macro expanded calls (lp#542174) + * bug fix: more accurate WHO-MACROEXPANDS information; point into rather + than just at toplevel form. changes in sbcl-1.0.36 relative to sbcl-1.0.35: * new feature: SB-EXT:TYPEXPAND-1, SB-EXT:TYPEXPAND, and diff --git a/src/compiler/xref.lisp b/src/compiler/xref.lisp index 2e8966f..7801e4e 100644 --- a/src/compiler/xref.lisp +++ b/src/compiler/xref.lisp @@ -31,17 +31,17 @@ ;; Properly record the deferred macroexpansion and source ;; transform information that's been stored in the block. (dolist (xref-data (block-xrefs block)) - (record-xref (car xref-data) - (cadr xref-data) - ;; We use the debug-name of the functional - ;; as an identifier. This works quite nicely, - ;; except for (fast/slow)-methods with non-symbol, - ;; non-number eql specializers, for which - ;; the debug-name doesn't map exactly - ;; to the fdefinition of the method. - functional - nil - (cddr xref-data))))) + (destructuring-bind (kind what path) xref-data + (record-xref kind what + ;; We use the debug-name of the functional + ;; as an identifier. This works quite nicely, + ;; except for (fast/slow)-methods with non-symbol, + ;; non-number eql specializers, for which + ;; the debug-name doesn't map exactly + ;; to the fdefinition of the method. + functional + nil + path))))) (call-with-block-external-functionals block #'handle-node))))) (defun call-with-block-external-functionals (block fun) diff --git a/version.lisp-expr b/version.lisp-expr index 064721f..9933ca1 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.36.34" +"1.0.36.35"