The following list is based on a similar one in closer-to-mop, explaining
the problems in ECL which are solved by that library. It clarifies the
status of MOP-compliance as of today -- very few things remain to be fixed,
but a lot of testing is still required.

Fixed in git/CVS

   - The functions ADD-DIRECT-METHOD and REMOVE-DIRECT-METHOD don't exist,
   and thus are also not called.
   - ADD-METHOD doesn't call FIND-METHOD or REMOVE-METHOD to remove
   potentially replaced methods, but uses some internal implementation instead.
   - SPECIALIZER-DIRECT-GENERIC-FUNCTIONS and SPECIALIZER-DIRECT-METHODS
   don't exist, and thus are also not updated by ADD-METHOD and REMOVE-METHOD.
   - VALIDATE-SUPERCLASS doesn't exist, and thus isn't called to determine
   whether two classes in a direct superclass relationship have compatible
   metaclasses.
   - COMPUTE-APPLICABLE-METHODS and COMPUTE-EFFECTIVE-METHOD are not
   generic functions.
   - COMPUTE-APPLICABLE-METHODS-USING-CLASSES doesn't exist.
   - DEFMETHOD doesn't call GENERIC-FUNCTION-METHOD-CLASS or
   MAKE-METHOD-LAMBDA.
   - The dependent protocols for classes and generic functions are not
   implemented.
   - EQL-SPECIALIZER, EQL-SPECIALIZER-OBJECT and INTERN-EQL-SPECIALIZER
   don't exist. In ECL, eql specializers are lists not objects. I have
   provided EQL-SPECIALIZER as a type (not as a class) and
   EQL-SPECIALIZER-OBJECT and INTERN-EQL-SPECIALIZER to work on lists, and a
   class EQL-SPECIALIZER* and corresponding EQL-SPECIALIZER-OBJECT* and
   INTERN-EQL-SPECILAIZER* to soften the incompatibilities.
   - EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES don't exist.
   - FIND-METHOD and REMOVE-METHOD are not generic functions.
   - The function invocation protocol doesn't call
   COMPUTE-APPLICABLE-METHODS, COMPUTE-APPLICABLE-METHODS-USING-CLASSES, and
   COMPUTE-EFFECTIVE-METHOD.
   - GENERIC-FUNCTION-DECLARATIONS doesn't exist.
   - Generic functions cannot be empty when called.
   - MAKE-METHOD-LAMBDA doesn't exist.
   - The class METAOBJECT doesn't exist.
   - The class SPECIALIZER doesn't exist.
   - Method functions don't take parameters as specified in AMOP, but
   instead just the parameters that the generic function receives.
   - Method metaobjects are not initialized with :DOCUMENTATION.
   - (SETF CLASS-NAME) and (SETF GENERIC-FUNCTION-NAME) are not implemented
   by way of calling REINITIALIZE-INSTANCE.

To be fixed

   - ADD-METHOD, REMOVE-METHOD, INITIALIZE-INSTANCE and
   REINITIALIZE-INSTANCE do not determine a new discriminating function.
   - Class initialization doesn't call READER-METHOD-CLASS and
   WRITER-METHOD-CLASS for accessor methods. However, ECL merely delays
   invocation of those two functions until a class is finalized, so this
   shouldn't be a problem in practice.
   - Class reinitialization does not remove direct subclasses that should
   be removed.
   - COMPUTE-EFFECTIVE-METHOD returns a function object, not an effective
   method form.
   - DEFGENERIC does not call FIND-METHOD-COMBINATION.
   - FIND-METHOD-COMBINATION doesn't exist.
   - GENERIC-FUNCTION-METHOD-CLASS is not a generic function.
   - Multiple slot options are not passed as lists to
   DIRECT-SLOT-DEFINITION-CLASS.
   - The automatically created accessor methods in DEFCLASS forms don't
   call SLOT-VALUE-USING-CLASS and (SETF SLOT-VALUE-USING-CLASS).
   - Subclasses of BUILT-IN-CLASS, CLASS, DIRECT-SLOT-DEFINITION,
   EFFECTIVE-SLOT-DEFINITION, FORWARD-REFERENCED-CLASS,
   FUNCALLABLE-STANDARD-CLASS, SLOT-DEFINITION, STANDARD-ACCESSOR-METHOD,
   STANDARD-CLASS, STANDARD-DIRECT-SLOT-DEFINITION,
   STANDARD-EFFECTIVE-SLOT-DEFINITION, STANDARD-GENERIC-FUNCTION,
   STANDARD-METHOD, STANDARD-READER-METHOD, STANDARD-SLOT-DEFINITION, and
   STANDARD-WRITER-METHOD will inherit slots whose names are exported symbols
   and/or accessible in the package common-lisp-user.

-- 
Instituto de FĂ­sica Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to