[armedbear-cvs] r13876 - trunk/abcl/src/org/armedbear/lisp

rschlatte at common-lisp.net rschlatte at common-lisp.net
Thu Feb 23 10:33:07 UTC 2012


Author: rschlatte
Date: Thu Feb 23 02:33:06 2012
New Revision: 13876

Log:
Beginning support for non-standard method metaclasses

... canonicalize specializers in defmethod macroexpansion, instead of in
    the bowels of make-instance-standard-method.

... handle non-standard method metaclass in more places

Modified:
   trunk/abcl/src/org/armedbear/lisp/clos.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/clos.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/clos.lisp	Wed Feb 22 02:14:06 2012	(r13875)
+++ trunk/abcl/src/org/armedbear/lisp/clos.lisp	Thu Feb 23 02:33:06 2012	(r13876)
@@ -1790,7 +1790,9 @@
            (if (eq (generic-function-method-class gf) +the-standard-method-class+)
                (apply #'make-instance-standard-method gf all-keys)
                (apply #'make-instance (generic-function-method-class gf) all-keys))))
-      (std-add-method gf method)
+      (if (eq (generic-function-method-class gf) +the-standard-method-class+)
+          (std-add-method gf method)
+          (add-method gf method))
       method)))
 
 (defun make-instance-standard-method (gf
@@ -2473,7 +2475,7 @@
          (ensure-method ',function-name
                         :lambda-list ',lambda-list
                         :qualifiers ',qualifiers
-                        :specializers ,specializers-form
+                        :specializers (canonicalize-specializers ,specializers-form)
                         ,@(if documentation `(:documentation ,documentation))
                         :function (function ,method-function)
                         ,@(if fast-function `(:fast-function (function ,fast-function)))




More information about the armedbear-cvs mailing list