definition-source-mixin
metaobject
funcallable-standard-object)
- ((%documentation
- :initform nil
- :initarg :documentation)
+ ((%documentation :initform nil :initarg :documentation)
;; We need to make a distinction between the methods initially set
;; up by :METHOD options to DEFGENERIC and the ones set up later by
;; DEFMETHOD, because ANSI specifies that executing DEFGENERIC on
;; DEFMETHOD, then modifying and reloading a.lisp and/or b.lisp
;; tends to leave the generic function in a state consistent with
;; the most-recently-loaded state of a.lisp and b.lisp.)
- (initial-methods
- :initform ()
- :accessor generic-function-initial-methods))
+ (initial-methods :initform () :accessor generic-function-initial-methods)
+ (encapsulations :initform () :accessor generic-function-encapsulations))
(:metaclass funcallable-standard-class))
(defclass standard-generic-function (generic-function)
:accessor gf-dfun-state)
;; Used to make DFUN-STATE & FIN-FUNCTION updates atomic.
(%lock
- :initform (sb-thread::make-spinlock :name "GF lock")
+ :initform (sb-thread:make-mutex :name "GF lock")
:reader gf-lock)
;; Set to true by ADD-METHOD, REMOVE-METHOD; to false by
;; MAYBE-UPDATE-INFO-FOR-GF.
:initform nil
:initarg :initfunction
:accessor slot-definition-initfunction)
- (readers
- :initform nil
- :initarg :readers
- :accessor slot-definition-readers)
- (writers
- :initform nil
- :initarg :writers
- :accessor slot-definition-writers)
(initargs
:initform nil
:initarg :initargs
:accessor slot-definition-internal-writer-function)))
(defclass direct-slot-definition (slot-definition)
- ())
+ ((readers
+ :initform nil
+ :initarg :readers
+ :accessor slot-definition-readers)
+ (writers
+ :initform nil
+ :initarg :writers
+ :accessor slot-definition-writers)))
(defclass effective-slot-definition (slot-definition)
((accessor-flags
(defun intern-eql-specializer (object)
;; Need to lock, so that two threads don't get non-EQ specializers
;; for an EQL object.
- (with-locked-hash-table (*eql-specializer-table*)
+ (with-locked-system-table (*eql-specializer-table*)
(or (gethash object *eql-specializer-table*)
(setf (gethash object *eql-specializer-table*)
(make-instance 'eql-specializer :object object)))))