~ubuntu-branches/ubuntu/utopic/cl-closer-mop/utopic

« back to all changes in this revision

Viewing changes to features.txt

  • Committer: Bazaar Package Importer
  • Author(s): Peter Van Eynde
  • Date: 2009-09-10 13:25:36 UTC
  • mfrom: (1.1.5 upstream) (2.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20090910132536-ie342hb7j3yg9xvi
Tags: 1:0.55-1
* Now use debhelper v7
* Added debian/README.building
* New upstream. Actually also took the fixed onto that new upstream.
* Updated Standards-Version no real changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
- VALIDATE-SUPERCLASS doesn't recognize T as a valid superclass. Not fixed.
21
21
- Subclasses of BUILT-IN-CLASS, FORWARD-REFERENCED-CLASS, FUNCALLABLE-STANDARD-CLASS, METHOD-COMBINATION, 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. Not fixed.
22
22
 
23
 
CLisp 2.43
 
23
CLisp 2.48
24
24
 
25
25
None of the incompatibilities in CLisp are fixed.
26
26
 
32
32
- MAKE-METHOD-LAMBDA is not provided.
33
33
- Subclasses of METHOD-COMBINATION will inherit slots whose names are exported symbols and/or accessible in the package common-lisp-user. Not fixed.
34
34
 
35
 
CMUCL 19d
 
35
Clozure Common Lisp 1.3
 
36
 
 
37
In CCL, generic functions work completely differently than specified. The specific incompatibilities are not listed and are not fixed. However, there is now experimental support for compute-discriminating-function, which will automatically be called and whose result will be installed on initialize-instance, reinitialize-instance, add-method and remove-method.
 
38
 
 
39
- The slot order requested by a primary method for COMPUTE-SLOTS is not honoured by this MOP. Not fixed.
 
40
- DOCUMENTATION doesn't return the documentation strings for slot definition metaobjects. Fixed.
 
41
- REINITIALIZE-INSTANCE of a class metaobject doesn't invoke FINALIZE-INHERITANCE again. Not fixed.
 
42
- Subclasses of DIRECT-SLOT-DEFINITION, EFFECTIVE-SLOT-DEFINITION, GENERIC-FUNCTION, SLOT-DEFINITION, STANDARD-ACCESSOR-METHOD, 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. Not fixed.
 
43
 
 
44
CMUCL 19f
36
45
 
37
46
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS don't return canonicalized default initargs as specified. Not fixed.
38
47
- Accessor methods are not initialized with :function, :lambda-list, :slot-definition and :specializers. Fixed.
49
58
- STANDARD-CLASS and FUNCALLABLE-STANDARD-CLASS are not compatible. Not fixed.
50
59
- Subclasses of BUILT-IN-CLASS, CLASS, DIRECT-SLOT-DEFINITION, EFFECTIVE-SLOT-DEFINITION, EQL-SPECIALIZER, FORWARD-REFERENCED-CLASS, FUNCALLABLE-STANDARD-CLASS, SLOT-DEFINITION, SPECIALIZER, 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. Not fixed.
51
60
 
52
 
LispWorks, 5.0 - 5.0.2, Professional Edition
 
61
LispWorks, 5.0 - 5.0.2, 5.1, 5.1.2 Personal & Professional Edition
53
62
 
54
63
- CLASS-DIRECT-DEFAULT-INITARGS and CLASS-DEFAULT-INITARGS don't return canonicalized default initargs as specified. Not fixed.
55
64
- 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.
57
66
- COMPUTE-DEFAULT-INITARGS doesn't exist. Not fixed.
58
67
- DEFGENERIC does not call FIND-METHOD-COMBINATION. Not fixed.
59
68
- EQL-SPECIALIZER, EQL-SPECIALIZER-OBJECT and INTERN-EQL-SPECIALIZER don't exist. In LispWorks, 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.
60
 
- The :ALLOCATION type cannot be extended. Not fixed.
 
69
- Before LispWorks 5.1, the :ALLOCATION type cannot be extended. Not fixed.
61
70
- FIND-METHOD-COMBINATION doesn't exist. Fixed, but fixed version doesn't work with method combination options.
62
71
- FUNCALLABLE-STANDARD-INSTANCE-ACCESS and STANDARD-INSTANCE-ACCESS don't exist. Not fixed.
63
72
- The function invocation protocol doesn't call COMPUTE-APPLICABLE-METHODS and COMPUTE-APPLICABLE-METHODS-USING-CLASSES. Not fixed.
86
95
 
87
96
OpenMCL 1.0
88
97
 
89
 
In OpenMCL, generic functions work completely differently than specified. The specific incompatibilities are not listed and are not fixed.
 
98
In OpenMCL, generic functions work completely differently than specified. The specific incompatibilities are not listed and are not fixed. However, there is now experimental support for compute-discriminating-function, which will automatically be called and whose result will be installed on initialize-instance, reinitialize-instance, add-method and remove-method.
90
99
 
91
100
- The slot order requested by a primary method for COMPUTE-SLOTS is not honoured by this MOP. Not fixed.
92
101
- EQL-SPECIALIZER is not exported. Fixed.
94
103
- REINITIALIZE-INSTANCE of a class metaobject doesn't invoke FINALIZE-INHERITANCE again. Not fixed.
95
104
- Subclasses of DIRECT-SLOT-DEFINITION, EFFECTIVE-SLOT-DEFINITION, GENERIC-FUNCTION, SLOT-DEFINITION, STANDARD-ACCESSOR-METHOD, 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. Not fixed.
96
105
 
97
 
SBCL 1.0.14
 
106
SBCL 1.0.31
98
107
 
99
108
All features implemented.
100
109
 
105
114
- If you specialize COMPUTE-DEFAULT-INITAGS, conditionalize for the extra parameters in Allegro Common Lisp.
106
115
- In Allegro Common Lisp, FUNCALLABLE-STANDARD-OBJECT is not used as the default superclass for classes with :metaclass FUNCALLABLE-STANDARD-CLASS.
107
116
- In CMUCL, 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.
108
 
- In CLisp, MCL and OpenMCL, the slot order requested by a primary method for COMPUTE-SLOTS is not honoured by the respective MOPs.
 
117
- In CLisp, Clozure CL, MCL, OpenMCL, the slot order requested by a primary method for COMPUTE-SLOTS is not honoured by the respective MOPs.
109
118
- Don't rely on FIND-METHOD-COMBINATION to do its job correctly, only when you don't provide method combination options.
110
119
- MAKE-METHOD-LAMBDA only works in CMUCL and SBCL as specified (but make sure that the respective generic function and method metaobject classes and make-method-lambda definitions are part of your compilation enviroment). MAKE-METHOD-LAMBDA also works in LispWorks, but the returned lambda expressions don't adhere to the AMOP specification (which may be good enough for your purposes).
111
120
- Specialize the methods for the dependent protocol on the class or generic function metaobject class. The example in AMOP doesn't do this but that is fragile code.
113
122
- CLisp doesn't change a FORWARD-REFERENCED-CLASS via CHANGE-CLASS.
114
123
- Effective slot definitions and EFFECTIVE-SLOT-DEFINITION-CLASS don't receive :documentation in CMUCL.
115
124
- If you specialize DIRECT-SLOT-DEFINITION-CLASS, use FIX-SLOT-INITARGS in portable code.
116
 
- If you want to use :ALLOCATION types other than :CLASS or :INSTANCE, you cannot use LispWorks or MCL. Only Allegro Common Lisp, CLisp, CMUCL, OpenMCL and SBCL support this.
 
125
- If you want to use :ALLOCATION types other than :CLASS or :INSTANCE, you cannot use LispWorks before version 5.1, or MCL. Allegro Common Lisp, CLisp, Clozure CL, CMUCL, LispWorks 5.1, OpenMCL and SBCL support this.
117
126
- In Allegro, CMUCL and LispWorks, STANDARD-CLASS and FUNCALLABLE-STANDARD-CLASS are not compatible.
118
127
- The function invocation protocol only works in CMUCL, SBCL and CLisp.
119
128
- COMPUTE-DEFAULT-INITARGS doesn't exist (and isn't called) in LispWorks.
120
129
- In LispWorks, eql specializers are lists.
121
130
- FUNCALLABLE-STANDARD-INSTANCE-ACCESS and STANDARD-INSTANCE-ACCESS doesn't exist / should not be used in LispWorks.
122
 
- In CMUCL, MCL and OpenMCL, the reinitialization of a class metaobject does not lead to a call of FINALIZE-INHERITANCE, so methods defined on FINALIZE-INHERITANCE won't be called again in that case.
 
131
- In Clozure CL, CMUCL, MCL and OpenMCL, the reinitialization of a class metaobject does not lead to a call of FINALIZE-INHERITANCE, so methods defined on FINALIZE-INHERITANCE won't be called again in that case.
123
132
- AMOP specifies that :declarations is used whereas ANSI Common Lisp specifies that 'declare is used. Since all MOP implementations adhere to AMOP in this regard, I have also chosen that path.
124
133
- In Allegro Common Lisp and LispWorks, method functions take the original parameters that a generic function has received.
125
 
- 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).
 
134
- If you need to rely on the generic function protocols, don't use Clozure CL, MCL or OpenMCL (or be very careful - some minor things work there as specified).
126
135
- The declarations for a generic function cannot be inspected in MCL.
127
136
- All implementations define slots on various specified metaobject classes that are exported from some package and/or accessible in the package common-lisp-user. Only SBCL is safe from this, and clisp is relatively safe in that it does that only for the class METHOD-COMBINATION.