From: Nikodemus Siivola Date: Wed, 30 Nov 2005 09:36:41 +0000 (+0000) Subject: 0.9.7.5: one more bug in the obsolete-instance protocol X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=0294a70162840bfdcc76dfde58e379f4295d7c13;p=sbcl.git 0.9.7.5: one more bug in the obsolete-instance protocol --- diff --git a/BUGS b/BUGS index 3512ffe..ab0e74b 100644 --- a/BUGS +++ b/BUGS @@ -2091,5 +2091,28 @@ WORKAROUND: the right fix is to remove the abstraction violation in the compiler's type deriver. -391: - (fixed in sbcl-0.9.7.1) +392: slot-accessor for subclass misses obsoleted superclass + + (defclass super () + ((x :initform 0 :accessor x-of))) + (defclass sub (super) ()) + + (defmethod shared-initialize :after ((i super) slots &rest init) + (incf (x-of i))) + + (defvar *super* (make-instance 'super)) + (defvar *sub* (make-instance 'sub)) + + (x-of *super*) ; => 1 ...ok + (x-of *sub*) ; => 1 ...ok + + (make-instances-obsolete 'super) + + (x-of *sub*) ; => 1 ...ooops! + (x-of *super*) ; => 2 ...ok + (x-of *sub*) ; => 2 ...got it now + + (make-instances-obsolete 'super) + + (x-of *sub*) ; => 2 ...ooops, i did it again... + (slot-value *sub* 'x) ; => 3 ...ok but a bit late diff --git a/version.lisp-expr b/version.lisp-expr index a21db99..e468a33 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.9.7.4" +"0.9.7.5"