X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fgeneric-functions.lisp;h=516ed6f7fe76ef05e0054999944cdd47f0392470;hb=09702467ab16baab34dc209606d9d07af38eaedd;hp=59330a5a62f5f0809d9feeeb294586371dd95f4f;hpb=683874b497a99cd2c11b6c5d9b47e2785b1ede5f;p=sbcl.git diff --git a/src/pcl/generic-functions.lisp b/src/pcl/generic-functions.lisp index 59330a5..516ed6f 100644 --- a/src/pcl/generic-functions.lisp +++ b/src/pcl/generic-functions.lisp @@ -14,6 +14,8 @@ (defgeneric classp (object)) +(defgeneric condition-class-p (object)) + (defgeneric eql-specializer-p (object)) (defgeneric exact-class-specializer-p (object)) @@ -24,8 +26,6 @@ (defgeneric generic-function-p (object)) -(defgeneric legal-lambda-list-p (object x)) - (defgeneric method-combination-p (object)) (defgeneric method-p (object)) @@ -70,20 +70,18 @@ (defgeneric class-incompatible-superclass-list (pcl-class)) -(defgeneric class-initialize-info (slot-class)) - (defgeneric class-name (class)) (defgeneric class-precedence-list (pcl-class)) -(defgeneric class-predicate-name (class)) - (defgeneric class-wrapper (pcl-class)) (defgeneric definition-source (definition-source-mixin)) (defgeneric eql-specializer-object (eql-specializer)) +(defgeneric generic-function-declarations (standard-generic-function)) + (defgeneric generic-function-method-class (standard-generic-function)) (defgeneric generic-function-method-combination (standard-generic-function)) @@ -96,7 +94,7 @@ (defgeneric gf-dfun-state (standard-generic-function)) -(defgeneric gf-pretty-arglist (standard-generic-function)) +(defgeneric generic-function-initial-methods (standard-generic-function)) (defgeneric long-method-combination-function (long-method-combination)) @@ -104,9 +102,7 @@ (defgeneric method-combination-options (standard-method-combination)) -(defgeneric method-combination-type (standard-method-combination)) - -(defgeneric method-fast-function (standard-method)) +(defgeneric method-combination-type-name (standard-method-combination)) (defgeneric method-generic-function (standard-method)) @@ -164,33 +160,35 @@ (defgeneric (setf class-incompatible-superclass-list) (new-value pcl-class)) -(defgeneric (setf class-initialize-info) (new-value slot-class)) - (defgeneric (setf class-name) (new-value class)) (defgeneric (setf class-slots) (new-value slot-class)) (defgeneric (setf generic-function-method-class) (new-value - standard-generic-function)) + standard-generic-function)) (defgeneric (setf generic-function-method-combination) (new-value standard-generic-function)) +(defgeneric (setf generic-function-declarations) (new-value + standard-generic-function)) + (defgeneric (setf generic-function-methods) (new-value - standard-generic-function)) + standard-generic-function)) (defgeneric (setf generic-function-name) (new-value standard-generic-function)) (defgeneric (setf gf-dfun-state) (new-value standard-generic-function)) -(defgeneric (setf gf-pretty-arglist) (new-value standard-generic-function)) +(defgeneric (setf generic-function-initial-methods) + (new-value standard-generic-function)) (defgeneric (setf method-generic-function) (new-value standard-method)) (defgeneric (setf object-plist) (new-value plist-mixin)) (defgeneric (setf slot-definition-allocation) (new-value - standard-slot-definition)) + standard-slot-definition)) (defgeneric (setf slot-definition-boundp-function) (new-value effective-slot-definition)) @@ -218,7 +216,7 @@ (defgeneric (setf slot-definition-name) (new-value slot-definition)) (defgeneric (setf slot-definition-reader-function) (new-value - effective-slot-definition)) + effective-slot-definition)) (defgeneric (setf slot-definition-readers) (new-value slot-definition)) @@ -231,8 +229,6 @@ ;;;; 1 argument -(defgeneric accessor-method-class (method)) - (defgeneric accessor-method-slot-name (m)) (defgeneric class-default-initargs (class)) @@ -263,6 +259,8 @@ (defgeneric function-keywords (method)) +(defgeneric generic-function-argument-precedence-order (gf)) + (defgeneric generic-function-lambda-list (gf)) (defgeneric generic-function-pretty-arglist (generic-function)) @@ -311,7 +309,7 @@ (defgeneric add-method (generic-function method)) -(defgeneric change-class (instance new-class-name)) +(defgeneric (setf class-slot-cells) (new-value class)) (defgeneric class-slot-value (class slot-name)) @@ -322,33 +320,13 @@ (defgeneric compute-applicable-methods-using-classes (generic-function classes)) -(defgeneric compute-effective-slot-definition (class dslotds)) - (defgeneric compute-effective-slot-definition-initargs (class direct-slotds)) -(defgeneric default-initargs (class supplied-initargs)) - (defgeneric describe-object (object stream)) -(defgeneric direct-slot-definition-class (class initargs)) - -(defgeneric effective-slot-definition-class (class initargs)) +(defgeneric direct-slot-definition-class (class &rest initargs)) -(defgeneric inform-type-system-about-class (class name)) - -(defgeneric legal-documentation-p (object x)) - -(defgeneric legal-method-function-p (object x)) - -(defgeneric legal-qualifier-p (object x)) - -(defgeneric legal-qualifiers-p (object x)) - -(defgeneric legal-slot-name-p (object x)) - -(defgeneric legal-specializer-p (object x)) - -(defgeneric legal-specializers-p (object x)) +(defgeneric effective-slot-definition-class (class &rest initargs)) (defgeneric make-boundp-method-function (class slot-name)) @@ -383,7 +361,7 @@ (defgeneric update-gf-dfun (class gf)) -(defgeneric validate-superclass (fsc class)) +(defgeneric validate-superclass (class superclass)) (defgeneric (setf documentation) (new-value slotd doc-type) (:argument-precedence-order doc-type slotd new-value)) @@ -401,14 +379,28 @@ (defgeneric (setf class-slot-value) (nv class slot-name)) +;;; CMUCL comment (from Gerd Moellmann/Pierre Mai, 2002-10-19): +;;; +;;; According to AMOP, COMPUTE-EFFECTIVE-METHOD should return two +;;; values. Alas, the second value is only vaguely described in AMOP, +;;; and, when asked on 2002-10-18, Gregor Kiczales said he couldn't +;;; remember what the second value was supposed to be. So, PCL's +;;; COMPUTE-EFFECTIVE-METHOD returns one value as do Allegro and +;;; Lispworks. (defgeneric compute-effective-method (generic-function - combin - applicable-methods)) + combin + applicable-methods)) + +(defgeneric compute-effective-slot-definition (class name dslotds)) (defgeneric compute-slot-accessor-info (slotd type gf)) +(defgeneric default-initargs (class initargs defaults)) + (defgeneric find-method-combination (generic-function type options)) +(defgeneric invalid-qualifiers (generic-function combin method)) + (defgeneric (setf slot-accessor-function) (function slotd type)) (defgeneric (setf slot-accessor-std-p) (value slotd type)) @@ -424,79 +416,83 @@ ;;;; 4 arguments (defgeneric make-method-lambda (proto-generic-function - proto-method - lambda-expression - environment)) + proto-method + lambda-expression + environment)) (defgeneric (setf slot-value-using-class) (new-value class object slotd)) ;;;; 5 arguments (defgeneric make-method-initargs-form (proto-generic-function - proto-method - lambda-expression - lambda-list - environment)) + proto-method + lambda-expression + lambda-list + environment)) ;;;; optional arguments (defgeneric get-method (generic-function - qualifiers - specializers - &optional (errorp t))) + qualifiers + specializers + &optional errorp)) (defgeneric find-method (generic-function - qualifiers - specializers - &optional (errorp t))) - -(defgeneric remove-named-method (generic-function-name - argument-specifiers - &optional extra)) + qualifiers + specializers + &optional errorp)) (defgeneric slot-missing (class - instance - slot-name - operation - &optional new-value)) + instance + slot-name + operation + &optional new-value)) ;;;; &KEY arguments +;;; FIXME: make the declared &KEY arguments here agree with those that +;;; AMOP specifies. (defgeneric allocate-instance (class &rest initargs)) -(defgeneric ensure-class-using-class (name - class - &rest args - &key &allow-other-keys)) +(defgeneric ensure-class-using-class (class + name + &rest args + &key &allow-other-keys)) (defgeneric ensure-generic-function-using-class (generic-function - fun-name - &key &allow-other-keys)) + fun-name + &key &allow-other-keys)) (defgeneric initialize-instance (gf &key &allow-other-keys)) -(defgeneric make-instance (class &rest initargs)) +(defgeneric make-instance (class &rest initargs &key &allow-other-keys)) + +(defgeneric change-class (instance new-class-name &rest initargs &key &allow-other-keys)) (defgeneric no-applicable-method (generic-function &rest args)) +(defgeneric no-next-method (generic-function method &rest args)) + +(defgeneric no-primary-method (generic-function &rest args)) + (defgeneric reader-method-class (class direct-slot &rest initargs)) (defgeneric reinitialize-instance (gf &rest args &key &allow-other-keys)) (defgeneric shared-initialize (generic-function - slot-names - &key &allow-other-keys)) + slot-names + &key &allow-other-keys)) (defgeneric update-dependent (metaobject dependent &rest initargs)) (defgeneric update-instance-for-different-class (previous - current - &rest initargs)) + current + &rest initargs)) (defgeneric update-instance-for-redefined-class (instance - added-slots - discarded-slots - property-list - &rest initargs)) + added-slots + discarded-slots + property-list + &rest initargs)) (defgeneric writer-method-class (class direct-slot &rest initargs))