Patch by Stas Boukarev, lp#693796.
UNINTERN is specified to take a symbol, not a symbol
designator: if P1 has the symbol P1:S, which is not EQ
to P2:S, then (UNINTERN 'P2:S :P1) should not remove
P1:S from P1.
mistake. (lp#667297).
* bug fix: CONSTANTLY generated functions had bogus lambda-lists. (lp#713626)
* bug fix: RUN-PROGRAM :PTY option was racy on OpenBSD. (lp#669485)
+ * bug fix: UNINTERN takes a symbol, not a symbol designator -- could previously
+ unintern the wrong symbol with the same name. (lp#693796)
changes in sbcl-1.0.45 relative to sbcl-1.0.44:
* enhancement: ~/ and ~user/ are treated specially in pathnames.
(remove symbol shadowing-symbols)))
(multiple-value-bind (s w) (find-symbol name package)
- (declare (ignore s))
- (cond ((or (eq w :internal) (eq w :external))
+ (cond ((not (eq symbol s)) nil)
+ ((or (eq w :internal) (eq w :external))
(nuke-symbol (if (eq w :internal)
(package-internal-symbols package)
(package-external-symbols package))
(is (eq (sym "FOO" "SYM")
(sym "BAZ" "SYM"))))))
+(with-test (:name unintern.2)
+ (with-packages (("FOO" (:intern "SYM")))
+ (unintern :sym "FOO")
+ (assert (find-symbol "SYM" "FOO"))))
+
;;; WITH-PACKAGE-ITERATOR error signalling had problems
(with-test (:name with-package-itarator.error)
(assert (eq :good
(write `(defun bar () (typep 1 ',(intern "A-TYPE"))) :stream stream))
(test-files (lambda ()
- (unintern 'a-type)
+ (unintern (find-symbol "A-TYPE"))
(fmakunbound 'bar))))
(delete-file *file-a*)
;;; 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.45.25"
+"1.0.45.26"