Skip to content
Snippets Groups Projects
Commit 7ddb005c authored by Pascal Costanza's avatar Pascal Costanza
Browse files

Documented the results of the more detailed checks for metaobject readers in MOP Feature Tests.

darcs-hash:b4333796ffe0fe6f5c99603b29cc995508b8dcae
parent 72da63ab
Branches
Tags
No related merge requests found
:allegro7.0
:class-default-initargs (no)
:class-direct-default-initargs (no)
:compute-default-initargs -> :compute-default-initargs-allegro (no)
:defgeneric-calls-find-method-combination (no)
:defmethod-calls-make-method-lambda (no)
......@@ -21,6 +23,8 @@
:t-is-always-a-valid-superclass (no)
:allegro8.0
:class-default-initargs (no)
:class-direct-default-initargs (no)
:compute-default-initargs -> :compute-default-initargs-allegro (no)
:defgeneric-calls-find-method-combination (no)
:defmethod-calls-make-method-lambda (no)
......@@ -73,6 +77,8 @@
:accessor-method-initialized-with-slot-definition (fixed)
:accessor-method-initialized-with-specializers (fixed)
:anonymous-classes (fixed)
:class-default-initargs (no)
:class-direct-default-initargs (no)
:class-initialization-calls-reader-method-class (fixed)
:class-initialization-calls-writer-method-class (fixed)
:discriminating-functions-can-be-closures (no)
......@@ -84,6 +90,7 @@
:reinitialize-instance-calls-compute-discriminating-function (fixed)
:setf-class-name-calls-reinitialize-instance (no)
:setf-generic-function-name-calls-reinitialize-instance (no)
:slot-definition-documentation (fixed)
:standard-class-and-funcallable-standard-class-are-compatible (no)
:lispworks4.4
......@@ -92,6 +99,8 @@
:add-method-calls-remove-method (fixed)
:add-method-updates-specializer-direct-generic-functions (fixed)
:allocation-passed-to-effective-slot-definition-class (instead :flags-passed-to-effective-slot-definition-class)
:class-default-initargs (no)
:class-direct-default-initargs (no)
:class-initialized-with-direct-default-initargs (instead: conditionalization)
:class-reinitialization-calls-remove-direct-subclass (fixed)
:compute-applicable-methods-using-classes (redef sgf)
......@@ -158,6 +167,7 @@
:effective-slot-definition (fixed)
:eql-specializer (fixed)
:extensible-allocation (no)
:generic-function-declarations (no)
:multiple-slot-options-passed-as-list-to-direct-slot-definition-class (fix with fix-slot-initargs)
:setf-class-name-calls-reinitialize-instance (no)
:slot-definition (fixed)
......@@ -184,6 +194,7 @@
-
:compute-slots-requested-slot-order-honoured (no)
:eql-specializer (fixed)
:slot-definition-documentation (fixed)
:sbcl
:accessor-method-initialized-with-function (fixed)
......
......@@ -2,6 +2,7 @@ Features that don't adhere to AMOP in various CLOS MOP implementations, and whet
Allegro Common Lisp 7.0
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS doesn't return canonicalized default initargs as specified. Not fixed.
- COMPUTE-DEFAULT-INITARGS takes more parameters than specified. Not fixed. Conditionalize on #+allegro for your own methods instead.
- DEFGENERIC does not call FIND-METHOD-COMBINATION. Not fixed.
- DEFMETHOD doesn't call MAKE-METHOD-LAMBDA. Not fixed.
......@@ -19,6 +20,7 @@ Allegro Common Lisp 7.0
Allegro Common Lisp 8.0
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS doesn't return canonicalized default initargs as specified. Not fixed.
- COMPUTE-DEFAULT-INITARGS takes more parameters than specified. Not fixed. Conditionalize on #+allegro for your own methods instead.
- DEFGENERIC does not call FIND-METHOD-COMBINATION. Not fixed.
- DEFMETHOD doesn't call MAKE-METHOD-LAMBDA. Not fixed.
......@@ -58,11 +60,13 @@ None of the incompatibilities in CLisp are fixed.
CMUCL 19c
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS doesn't return canonicalized default initargs as specified. Not fixed.
- Accessor methods are not initialized with :function, :lambda-list, :slot-definition and :specializers. Fixed.
- Classes cannot be anonymous. Fixed.
- Class initialization doesn't call READER-METHOD-CLASS and WRITER-METHOD-CLASS for accessor methods. Fixed.
- The object returned by compute-discriminating-function cannot be a closure. Likewise, the second parameter to set-funcallable-instance-function cannot be a closure, but only a "pure" function/thunk. Not fixed.
- Effective slot definitions are not initialized with :documentation, and EFFECTIVE-SLOT-DEFINITION-CLASS also doesn't receive that initarg. Not fixed.
- Calling DOCUMENTATION on effective slot definition metaobjects don't return their documentation as specified in ANSI Common Lisp. Fixed.
- Methods are not initialized with :function. Not fixed.
- Multiple slot options are not passed as lists to DIRECT-SLOT-DEFINITION-CLASS. Not fixed, but use FIX-SLOT-INITARGS as a workaround.
- REINITIALIZE-INSTANCE doesn't determine a new discriminating function. Fixed.
......@@ -71,6 +75,7 @@ CMUCL 19c
LispWorks, 4.4.5, 4.4.6, Personal and Professional Editions
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS doesn't return canonicalized default initargs as specified. Not fixed.
- ADD-METHOD doesn't call ADD-DIRECT-METHOD and REMOVE-METHOD. Fixed.
- ADD-METHOD, REMOVE-METHOD, INITIALIZE-INSTANCE and REINITIALIZE-INSTANCE do not determine a new discriminating function. This is postponed until function invocation instead, so shouldn't be a problem in practice.
- Effective slot definitions are not initialized with :allocation, and EFFECTIVE-SLOT-DEFINITION-CLASS also doesn't receive that initarg. Not fixed. This information is encoded in the initarg :flags, but I don't have any detailed information about that parameter.
......@@ -101,6 +106,7 @@ MCL 5.1
In MCL, generic functions work completely differently than specified. The specific incompatibilities are not listed and are not fixed.
- The object returned by compute-discriminating-function cannot be a closure. Likewise, the second parameter to set-funcallable-instance-function cannot be a closure, but only a "pure" function/thunk. Not fixed.
- GENERIC-FUNCTION-DECLARATIONS doesn't return the specified declarations for a generic function. Not fixed.
- The slot order requested by a primary method for COMPUTE-SLOTS is not honoured by this MOP. Not fixed.
- DIRECT-SLOT-DEFINITION, EFFECTIVE-SLOT-DEFINITION, EQL-SPECIALIZER, SLOT-DEFINITION and STANDARD-SLOT-DEFINITION are not exported. Fixed.
- When classes are initialized, :direct-superclasses are by default not empty. Not fixed, but direct superclasses are automatically adjusted when you use the standard idiom for adding a new default superclass.
......@@ -114,6 +120,7 @@ In OpenMCL, generic functions work completely differently than specified. The sp
- The slot order requested by a primary method for COMPUTE-SLOTS is not honoured by this MOP. Not fixed.
- EQL-SPECIALIZER is not exported. Fixed.
- DOCUMENTATION doesn't return the documentation strings for slot definition metaobjects. Fixed.
SBCL 0.9.7 - 0.9.9
......@@ -125,6 +132,7 @@ SBCL 0.9.7 - 0.9.9
Summary:
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS exist, but don't work as expected in Allegro Common Lisp, CMUCL and LispWorks.
- If you specialize COMPUTE-DEFAULT-INITAGS, conditionalize for the extra parameters in Allegro Common Lisp.
- In CMUCL, MCL and OpenMCL, the object returned by compute-discriminating-function cannot be a closure. Likewise, the second parameter to set-funcallable-instance-function cannot be a closure, but only a "pure" function/thunk.
- In CLisp, MCL and OpenMCL, the slot order requested by a primary method for COMPUTE-SLOTS is not honoured by the respective MOPs.
......@@ -146,3 +154,4 @@ Summary:
- In Allegro Common Lisp and LispWorks, method functions take the original parameters that a generic function has received.
- In LispWorks, the class SPECIALIZER doesn't exist.
- If you need to rely on the generic function protocols, don't use MCL or OpenMCL (or be very careful - some minor things work there as specified).
- The declarations for a generic function cannot be inspected in MCL.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment