Update of /cvsroot/sbcl/sbcl/src/compiler/generic
In directory sc8-pr-cvs1:/tmp/cvs-serv8986/src/compiler/generic
Modified Files:
objdef.lisp vm-ir2tran.lisp
Log Message:
0.8alpha.0.23:
Fix a couple of the CLOS bugs that have been accumulating:
... make :ALLOCATION :CLASS slots behave as they should in slot
inheritance and class redefinition.
Slightly unKLUDGEify the %SET-SYMBOL-VALUE implementation
... do it the same way whether building with #!+SB-THREAD or
not, so at least it's ugly once and only once.
Index: objdef.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/objdef.lisp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- objdef.lisp 7 Apr 2003 13:16:54 -0000 1.23
+++ objdef.lisp 9 May 2003 10:22:50 -0000 1.24
@@ -326,8 +326,7 @@
;; subtract 3 from (sb-kernel:get-lisp-obj-address 'NIL) you get the
;; first data slot, and if you subtract 7 you get a symbol header.
- (value #!-sb-thread :set-trans #!-sb-thread %set-symbol-value
- :init :unbound) ;also the CAR of NIL-as-end-of-list
+ (value :init :unbound) ;also the CAR of NIL-as-end-of-list
(hash) ;the CDR of NIL-as-end-of-list
(plist :ref-trans symbol-plist
Index: vm-ir2tran.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/generic/vm-ir2tran.lisp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- vm-ir2tran.lisp 8 May 2003 16:17:58 -0000 1.6
+++ vm-ir2tran.lisp 9 May 2003 10:22:50 -0000 1.7
@@ -82,11 +82,11 @@
(do-inits node block name result lowtag inits args)
(move-continuation-result node block locs cont)))
-;;; KLUDGE: this is set up automatically in #!-SB-THREAD builds by the
-;;; :SET-TRANS thing in objdef.lisp. However, for #!+SB-THREAD builds
-;;; we need to use a special VOP, so we have to do this by hand.
-;;; -- CSR, 2003-05-08
-#!+sb-thread
+;;; :SET-TRANS (in objdef.lisp DEFINE-PRIMITIVE-OBJECT) doesn't quite
+;;; cut it for symbols, where under certain compilation options
+;;; (e.g. #!+SB-THREAD) we have to do something complicated, rather
+;;; than simply set the slot. So we build the IR2 converting function
+;;; by hand. -- CSR, 2003-05-08
(let ((fun-info (fun-info-or-lose '%set-symbol-value)))
(setf (fun-info-ir2-convert fun-info)
(lambda (node block)
|