0.8.0.18:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 30 May 2003 09:39:21 +0000 (09:39 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 30 May 2003 09:39:21 +0000 (09:39 +0000)
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 ...)

NEWS
src/code/package.lisp
src/code/target-package.lisp
tests/interface.pure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 11f5fd3..fdd18c9 100644 (file)
--- 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
index c43c5e4..7f67aa6 100644 (file)
                         `((:internal
                            (setf ,',counter
                                  (position-if #',',real-symbol-p
-                                              ,',hash-vector
+                                              (the hash-vector ,',hash-vector)
                                               :start (if ,',counter
                                                          (1+ ,',counter)
                                                          0)))
                         `((:external
                            (setf ,',counter
                                  (position-if #',',real-symbol-p
-                                              ,',hash-vector
+                                              (the hash-vector ,',hash-vector)
                                               :start (if ,',counter
                                                          (1+ ,',counter)
                                                          0)))
                            (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)))
                                              :inherited)))))
                              (setf ,',counter
                                    (position-if #',',inherited-symbol-p
-                                                ,',hash-vector
+                                                (the hash-vector
+                                                  ,',hash-vector)
                                                 :start (if ,',counter
                                                            (1+ ,',counter)
                                                            0))))
index e7a79f2..05c80ad 100644 (file)
        (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)))
index a37c1f6..c84cc63 100644 (file)
 (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"))))
 \f
 ;;; DESCRIBE shouldn't fail on rank-0 arrays (bug reported and fixed
 ;;; by Lutz Euler sbcl-devel 2002-12-03)
index 6ebf536..8e3fefc 100644 (file)
@@ -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"