From: Christophe Rhodes Date: Fri, 30 May 2003 09:39:21 +0000 (+0000) Subject: 0.8.0.18: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=e92a2f8844d9125e76a4b96dc27b56632bfd85b6;p=sbcl.git 0.8.0.18: Fix bug in APROPOS (reported by cliini on #lisp IRC 2003-05-29) ... it's the second value from FIND-SYMBOL that we want to compare to :EXTERNAL, not the primary :) ... while we're at it, quieten WITH-PACKAGE-ITERATOR (and incidentally LOOP FOR ... BEING EACH SYMBOL IN ...) --- diff --git a/NEWS b/NEWS index 11f5fd3..fdd18c9 100644 --- a/NEWS +++ b/NEWS @@ -1783,6 +1783,8 @@ changes in sbcl-0.8.1 relative to sbcl-0.8.0: * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM classes. (thanks to Antonio Martinez) + * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported + by Teemu Kalvas) * fixed some bugs revealed by Paul Dietz' test suite: ** NIL is now allowed as a structure slot name. ** arbitrary numbers, not just reals, are allowed in certain diff --git a/src/code/package.lisp b/src/code/package.lisp index c43c5e4..7f67aa6 100644 --- a/src/code/package.lisp +++ b/src/code/package.lisp @@ -301,7 +301,7 @@ `((:internal (setf ,',counter (position-if #',',real-symbol-p - ,',hash-vector + (the hash-vector ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -314,7 +314,7 @@ `((:external (setf ,',counter (position-if #',',real-symbol-p - ,',hash-vector + (the hash-vector ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -328,7 +328,9 @@ (flet ((,',inherited-symbol-p (number) (when (,',real-symbol-p number) (let* ((p (position - number ,',hash-vector + number + (the hash-vector + ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -340,7 +342,8 @@ :inherited))))) (setf ,',counter (position-if #',',inherited-symbol-p - ,',hash-vector + (the hash-vector + ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0)))) diff --git a/src/code/target-package.lisp b/src/code/target-package.lisp index e7a79f2..05c80ad 100644 --- a/src/code/target-package.lisp +++ b/src/code/target-package.lisp @@ -877,7 +877,8 @@ (do-symbols (symbol package) (when (and (eq (symbol-package symbol) package) (or (not external-only) - (eq (find-symbol (symbol-name symbol) package) + (eq (nth-value 1 (find-symbol (symbol-name symbol) + package)) :external)) (search string (symbol-name symbol) :test #'char-equal)) (push symbol result))) diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp index a37c1f6..c84cc63 100644 --- a/tests/interface.pure.lisp +++ b/tests/interface.pure.lisp @@ -27,6 +27,14 @@ (assert (< 0 (length (apropos-list "PRINT" :cl)) (length (apropos-list "PRINT")))) +;;; Further, it should correctly deal with the external-only flag (bug +;;; reported by cliini on #lisp IRC 2003-05-30, fixed in sbcl-0.8.0.1x +;;; by CSR) +(assert (= (length (apropos-list "" "CL")) + (length (apropos-list "" "CL" t)))) +(assert (< 0 + (length (apropos-list "" "SB-VM" t)) + (length (apropos-list "" "SB-VM")))) ;;; DESCRIBE shouldn't fail on rank-0 arrays (bug reported and fixed ;;; by Lutz Euler sbcl-devel 2002-12-03) diff --git a/version.lisp-expr b/version.lisp-expr index 6ebf536..8e3fefc 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".) -"0.8.0.17" +"0.8.0.18"