Just some minutes ago, a commit went into ABCL's source repository which cleaned up a bit of confusion over the role of fast method functions in calculating the discriminating function of a generic function. And as of now, Pascal Costanza's MOP test suite reports this:
CL-USER> (mop-feature-tests:describe-mop-features) This MOP supports all known standard features. This MOP lacks no known standard features. This MOP supports the extra features (:ACCESSOR-METHOD-INITIALIZED-WITH-FAST-FUNCTION :ACCESSOR-METHOD-INITIALIZED-WITH-GENERIC-FUNCTION :ACCESSOR-METHOD-INITIALIZED-WITH-QUALIFIERS :ALLOCATION-CLASS-PASSED-TO-EFFECTIVE-SLOT-DEFINITION-CLASS :DIRECT-SLOT-DEFINITION-INITIALIZED-WITH-ALLOCATION-CLASS :EFFECTIVE-SLOT-DEFINITION-INITIALIZED-WITH-ALLOCATION-CLASS :METHOD-INITIALIZED-WITH-FAST-FUNCTION) This MOP metaclass structure has no known leaks. ; No value CL-USER>
The test suite page warns about interpreting such a result as "supports the meta-object protocol of Common Lisp, guaranteed bug-free!", and I heartily agree with that assessment. I would classify ABCL's MOP support as early beta, with lots of exciting bugs to be uncovered as people start using it.
That said, I will submit patches to closer-mop to support ABCL as soon as MOP support is in a released version of ABCL, and the large number of MOP-using systems available from quicklisp should then uncover any obvious bugs quite soon.
Fantastic :) I have lots of MOP-using code, and it's great that it should soon work on ABCL.
ReplyDeleteNice work!
ReplyDelete