projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.16.37: fix bug #206 -- SB-FLUID build works once more
[sbcl.git]
/
src
/
pcl
/
defs.lisp
diff --git
a/src/pcl/defs.lisp
b/src/pcl/defs.lisp
index
882a37f
..
cea2b0e
100644
(file)
--- a/
src/pcl/defs.lisp
+++ b/
src/pcl/defs.lisp
@@
-76,7
+76,7
@@
;; FIXME: do we still need this?
((and (null args) (typep type 'classoid))
(or (classoid-pcl-class type)
;; FIXME: do we still need this?
((and (null args) (typep type 'classoid))
(or (classoid-pcl-class type)
- (ensure-non-standard-class (classoid-name type))))
+ (ensure-non-standard-class (classoid-name type) type)))
((specializerp type) type)))
;;; interface
((specializerp type) type)))
;;; interface
@@
-195,12
+195,6
@@
(push (list class-name symbol) *built-in-wrapper-symbols*)
symbol)))
\f
(push (list class-name symbol) *built-in-wrapper-symbols*)
symbol)))
\f
-(pushnew '%class *var-declarations*)
-(pushnew '%variable-rebinding *var-declarations*)
-
-(defun variable-class (var env)
- (caddr (var-declaration 'class var env)))
-
(defvar *standard-method-combination*)
\f
(defun plist-value (object name)
(defvar *standard-method-combination*)
\f
(defun plist-value (object name)
@@
-233,7
+227,7
@@
(let ((subs (classoid-subclasses class)))
(/noshow subs)
(when subs
(let ((subs (classoid-subclasses class)))
(/noshow subs)
(when subs
- (dohash (sub v subs)
+ (dohash ((sub v) subs)
(declare (ignore v))
(/noshow sub)
(when (member class (direct-supers sub))
(declare (ignore v))
(/noshow sub)
(when (member class (direct-supers sub))
@@
-550,22
+544,28
@@
;; responses in comp.lang.lisp). -- CSR, 2006-02-27
((%type :initform nil :reader specializer-type)))
;; responses in comp.lang.lisp). -- CSR, 2006-02-27
((%type :initform nil :reader specializer-type)))
+;;; STANDARD in this name doesn't mean "blessed by a standard" but
+;;; "comes as standard with PCL"; that is, it includes CLASS-EQ
+;;; and vestiges of PROTOTYPE specializers
+(defclass standard-specializer (specializer) ())
+
(defclass specializer-with-object (specializer) ())
(defclass exact-class-specializer (specializer) ())
(defclass specializer-with-object (specializer) ())
(defclass exact-class-specializer (specializer) ())
-(defclass class-eq-specializer (exact-class-specializer
+(defclass class-eq-specializer (standard-specializer
+ exact-class-specializer
specializer-with-object)
((object :initarg :class
:reader specializer-class
:reader specializer-object)))
specializer-with-object)
((object :initarg :class
:reader specializer-class
:reader specializer-object)))
-(defclass class-prototype-specializer (specializer-with-object)
+(defclass class-prototype-specializer (standard-specializer specializer-with-object)
((object :initarg :class
:reader specializer-class
:reader specializer-object)))
((object :initarg :class
:reader specializer-class
:reader specializer-object)))
-(defclass eql-specializer (exact-class-specializer specializer-with-object)
+(defclass eql-specializer (standard-specializer exact-class-specializer specializer-with-object)
((object :initarg :object :reader specializer-object
:reader eql-specializer-object)))
((object :initarg :object :reader specializer-object
:reader eql-specializer-object)))
@@
-584,7
+584,7
@@
(defclass class (dependent-update-mixin
definition-source-mixin
(defclass class (dependent-update-mixin
definition-source-mixin
- specializer)
+ standard-specializer)
((name
:initform nil
:initarg :name
((name
:initform nil
:initarg :name
@@
-651,10
+651,10
@@
(defclass slot-class (pcl-class)
((direct-slots
:initform ()
(defclass slot-class (pcl-class)
((direct-slots
:initform ()
- :accessor class-direct-slots)
+ :reader class-direct-slots)
(slots
:initform ()
(slots
:initform ()
- :accessor class-slots)))
+ :reader class-slots)))
;;; The class STD-CLASS is an implementation-specific common
;;; superclass of the classes STANDARD-CLASS and
;;; The class STD-CLASS is an implementation-specific common
;;; superclass of the classes STANDARD-CLASS and
@@
-698,6
+698,7
@@
(defparameter *early-class-predicates*
'((specializer specializerp)
(defparameter *early-class-predicates*
'((specializer specializerp)
+ (standard-specializer standard-specializer-p)
(exact-class-specializer exact-class-specializer-p)
(class-eq-specializer class-eq-specializer-p)
(eql-specializer eql-specializer-p)
(exact-class-specializer exact-class-specializer-p)
(class-eq-specializer class-eq-specializer-p)
(eql-specializer eql-specializer-p)