Simplify (and robustify) regular PACKing
[sbcl.git] / src / pcl / generic-functions.lisp
index e0dabdf..0b633a6 100644 (file)
@@ -26,8 +26,6 @@
 
 (defgeneric generic-function-p (object))
 
-(defgeneric legal-lambda-list-p (object x))
-
 (defgeneric method-combination-p (object))
 
 (defgeneric method-p (object))
 
 (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))
 
 
 (defgeneric short-combination-operator (short-method-combination))
 
-(defgeneric slot-definition-boundp-function (effective-slot-definition))
-
 (defgeneric slot-definition-class (slot-definition))
 
 (defgeneric slot-definition-defstruct-accessor-symbol
 
 (defgeneric slot-definition-name (slot-definition))
 
-(defgeneric slot-definition-reader-function (effective-slot-definition))
+(defgeneric slot-definition-info (effective-slot-definition))
 
 (defgeneric slot-definition-readers (slot-definition))
 
 (defgeneric slot-definition-type (slot-definition))
 
-(defgeneric slot-definition-writer-function (effective-slot-definition))
-
 (defgeneric slot-definition-writers (slot-definition))
 
 (defgeneric specializer-object (class-eq-specializer))
 
 (defgeneric (setf class-incompatible-superclass-list) (new-value pcl-class))
 
+(defgeneric (setf class-name) (new-value class))
+
 (defgeneric (setf class-slots) (new-value slot-class))
 
 (defgeneric (setf generic-function-method-class) (new-value
 (defgeneric (setf generic-function-methods) (new-value
                                              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 generic-function-initial-methods)
 (defgeneric (setf slot-definition-allocation) (new-value
                                                standard-slot-definition))
 
-(defgeneric (setf slot-definition-boundp-function)
-  (new-value effective-slot-definition))
-
 (defgeneric (setf slot-definition-class) (new-value slot-definition))
 
 (defgeneric (setf slot-definition-defstruct-accessor-symbol)
 
 (defgeneric (setf slot-definition-name) (new-value slot-definition))
 
-(defgeneric (setf slot-definition-reader-function) (new-value
-                                                    effective-slot-definition))
+(defgeneric (setf slot-definition-info) (new-value effective-slot-definition))
 
 (defgeneric (setf slot-definition-readers) (new-value slot-definition))
 
 \f
 ;;;; 1 argument
 
-(defgeneric accessor-method-class (method))
-
 (defgeneric accessor-method-slot-name (m))
 
 (defgeneric class-default-initargs (class))
 
 (defgeneric function-keywords (method))
 
+(defgeneric function-keyword-parameters (method))
+
 (defgeneric generic-function-argument-precedence-order (gf))
 
 (defgeneric generic-function-lambda-list (gf))
 
 (defgeneric method-lambda-list (m))
 
-(defgeneric method-pretty-arglist (method))
-
 (defgeneric method-qualifiers (m))
 
 (defgeneric method-specializers (m))
 
 (defgeneric effective-slot-definition-class (class &rest initargs))
 
-(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 make-boundp-method-function (class slot-name))
 
 (defgeneric make-reader-method-function (class slot-name))
 
 (defgeneric map-dependents (metaobject function))
 
+(defgeneric parse-specializer-using-class (generic-function specializer-name))
+
 (defgeneric remove-boundp-method (class generic-function))
 
 (defgeneric remove-dependent (metaobject dependent))
 ;;; This controls DESCRIBE-OBJECT (SLOT-OBJECT STREAM) behavior.
 (defgeneric slots-to-inspect (class object))
 
-(defgeneric update-gf-dfun (class gf))
+(defgeneric unparse-specializer-using-class (generic-function specializer))
 
 (defgeneric validate-superclass (class superclass))
 
 \f
 ;;;; 3 arguments
 
-(defgeneric add-boundp-method (class generic-function slot-name))
-
-(defgeneric add-reader-method (class generic-function slot-name))
-
-(defgeneric add-writer-method (class generic-function slot-name))
-
 (defgeneric (setf class-slot-value) (nv class slot-name))
 
 ;;; CMUCL comment (from Gerd Moellmann/Pierre Mai, 2002-10-19):
 
 (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))
 \f
 ;;;; 4 arguments
 
-(defgeneric make-method-lambda (proto-generic-function
-                                proto-method
-                                lambda-expression
-                                environment))
+(defgeneric make-method-lambda
+    (proto-generic-function proto-method lambda-expression environment))
+
+(defgeneric make-method-specializers-form
+    (proto-generic-function proto-method specializer-names environment))
 
 (defgeneric (setf slot-value-using-class) (new-value class object slotd))
 \f
 ;;;; 5 arguments
 
-(defgeneric make-method-initargs-form (proto-generic-function
-                                       proto-method
-                                       lambda-expression
-                                       lambda-list
-                                       environment))
+;;; FIXME: This is currently unused -- where should we call it? Or should we just
+;;; delete it.
+(defgeneric add-boundp-method (class generic-function slot-name slot-documentation source-location))
+
+(defgeneric add-reader-method (class generic-function slot-name slot-documentation source-location))
+
+(defgeneric add-writer-method (class generic-function slot-name slot-documentation source-location))
+
+(defgeneric make-method-initargs-form
+    (proto-generic-function proto-method lambda-expression lambda-list
+     environment))
 \f
 ;;;; optional arguments
 
 \f
 ;;;; &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 (class
                                                  fun-name
                                                  &key &allow-other-keys))
 
-(defgeneric initialize-instance (gf &key &allow-other-keys))
+(defgeneric initialize-instance (instance &rest initargs &key &allow-other-keys))
 
 (defgeneric make-instance (class &rest initargs &key &allow-other-keys))
 
 
 (defgeneric reader-method-class (class direct-slot &rest initargs))
 
-(defgeneric reinitialize-instance (gf &rest args &key &allow-other-keys))
+(defgeneric reinitialize-instance (instance &rest initargs &key &allow-other-keys))
 
-(defgeneric shared-initialize (generic-function
-                               slot-names
+(defgeneric shared-initialize (instance slot-names &rest initargs
                                &key &allow-other-keys))
 
 (defgeneric update-dependent (metaobject dependent &rest initargs))