Wednesday, March 28, 2012

Closing in on the MOP ...

I just sent the following patch to Pascal Costanza, the author of the excellent mop-feature-tests test suite:

--- old-mop-features/mop-feature-tests.lisp
+++ new-mop-features/mop-feature-tests.lisp
@@ -1,6 +1,7 @@
 (in-package :mop-feature-tests)
 (defparameter *mop-package-name*
+  #+abcl "MOP"
   #+allegro "MOP" ;; "CLOS" "ACLMOP"
   #+clisp "CLOS"
   #+cmu "CLOS-MOP" ;; "MOP"
@@ -730,6 +731,7 @@
         (format out "(defparameter *mop-known-extra-features*~%")
         (format out "  '~S)~%~%" *mop-known-extra-features*))
       (format out
+              #+abcl "#+abcl~%"
               #+allegro "#+allegro~%"
               #+clisp "#+clisp~%"
               #+cmu "#+cmu~%"

The version of ABCL in subversion now runs this test suite to completion, sporting 53 missing standard features but on the other hand also 13 extra features, as reported by (mop-feature-tests:describe-mop-features).  Next up: finding out what these numbers mean, implementing the missing features, and getting ABCL support into Pascal's closer-mop compatibility library, which is used by virtually all MOP-using Lisp code these days.

Right now, I would rate ABCL's MOP support as alpha-quality, as in "it compiled, check it in!".  But after some rounds of bug-fixing, we should have solid support for another big group of Common Lisp libraries and systems.  Onward!


  1. Super-excited to hear this. The MOP is such a useful extension to CL, I find it hard to be very productive on implementations that don't support it.

  2. The "another round of bug-fixing" took a little while longer - but all tests pass now, and we're ready to have embarrassing bugs found by people using it. ;)

    1. Congratulations! The commits have been solid from what I've tested of 'em. Now, we just need to test all the Quicklisp packagss blocked by needing CLOSER-MOP.