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

rschlatte at common-lisp.net rschlatte at common-lisp.net
Sat Jan 14 16:37:33 UTC 2012


Author: rschlatte
Date: Sat Jan 14 08:37:32 2012
New Revision: 13773

Log:
introduce funcallable-standard-object.

Modified:
   trunk/abcl/src/org/armedbear/lisp/StandardClass.java
   trunk/abcl/src/org/armedbear/lisp/Symbol.java

Modified: trunk/abcl/src/org/armedbear/lisp/StandardClass.java
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/StandardClass.java	Thu Jan 12 12:18:19 2012	(r13772)
+++ trunk/abcl/src/org/armedbear/lisp/StandardClass.java	Sat Jan 14 08:37:32 2012	(r13773)
@@ -421,9 +421,13 @@
 
 
   // BuiltInClass.FUNCTION is also null here (see previous comment).
+  public static final StandardClass FUNCALLABLE_STANDARD_OBJECT =
+      addStandardClass(Symbol.FUNCALLABLE_STANDARD_OBJECT,
+                       list(STANDARD_OBJECT, BuiltInClass.FUNCTION));
+
   public static final StandardClass GENERIC_FUNCTION =
-    addStandardClass(Symbol.GENERIC_FUNCTION, list(METAOBJECT,
-                                                   BuiltInClass.FUNCTION));
+    addStandardClass(Symbol.GENERIC_FUNCTION,
+                     list(METAOBJECT, FUNCALLABLE_STANDARD_OBJECT));
 
   public static final StandardClass METHOD_COMBINATION =
     addStandardClass(Symbol.METHOD_COMBINATION, list(METAOBJECT));
@@ -581,8 +585,9 @@
     // STANDARD_OBJECT).
     STANDARD_CLASS.setDirectSuperclass(CLASS);
     STANDARD_OBJECT.setDirectSuperclass(BuiltInClass.CLASS_T);
+    FUNCALLABLE_STANDARD_OBJECT.setDirectSuperclasses(list(STANDARD_OBJECT, BuiltInClass.FUNCTION));
     GENERIC_FUNCTION.setDirectSuperclasses(list(METAOBJECT,
-                                                BuiltInClass.FUNCTION));
+                                                FUNCALLABLE_STANDARD_OBJECT));
 
     ARITHMETIC_ERROR.setCPL(ARITHMETIC_ERROR, ERROR, SERIOUS_CONDITION,
                             CONDITION, STANDARD_OBJECT, BuiltInClass.CLASS_T);
@@ -646,7 +651,9 @@
                                     STANDARD_OBJECT, BuiltInClass.CLASS_T);
     FORWARD_REFERENCED_CLASS.setCPL(FORWARD_REFERENCED_CLASS, CLASS,
                                     SPECIALIZER, METAOBJECT, STANDARD_OBJECT, BuiltInClass.CLASS_T);
-    GENERIC_FUNCTION.setCPL(GENERIC_FUNCTION, METAOBJECT, STANDARD_OBJECT,
+    FUNCALLABLE_STANDARD_OBJECT.setCPL(FUNCALLABLE_STANDARD_OBJECT, STANDARD_OBJECT, BuiltInClass.FUNCTION, BuiltInClass.CLASS_T);
+    GENERIC_FUNCTION.setCPL(GENERIC_FUNCTION, METAOBJECT,
+                            FUNCALLABLE_STANDARD_OBJECT, STANDARD_OBJECT,
                             BuiltInClass.FUNCTION,
                             BuiltInClass.CLASS_T);
     JAVA_EXCEPTION.setCPL(JAVA_EXCEPTION, ERROR, SERIOUS_CONDITION, CONDITION,
@@ -765,7 +772,9 @@
     // Condition classes.
     STANDARD_CLASS.finalizeClass();
     STANDARD_OBJECT.finalizeClass();
+    FUNCALLABLE_STANDARD_OBJECT.finalizeClass();
     CLASS.finalizeClass();
+    GENERIC_FUNCTION.finalizeClass();
     ARITHMETIC_ERROR.finalizeClass();
     CELL_ERROR.finalizeClass();
     COMPILER_ERROR.finalizeClass();
@@ -855,6 +864,7 @@
     Debug.assertTrue(STANDARD_GENERIC_FUNCTION.isFinalized());
     STANDARD_GENERIC_FUNCTION.setCPL(STANDARD_GENERIC_FUNCTION,
                                      GENERIC_FUNCTION, METAOBJECT,
+                                     FUNCALLABLE_STANDARD_OBJECT,
                                      STANDARD_OBJECT,
                                      BuiltInClass.FUNCTION,
                                      BuiltInClass.CLASS_T);

Modified: trunk/abcl/src/org/armedbear/lisp/Symbol.java
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/Symbol.java	Thu Jan 12 12:18:19 2012	(r13772)
+++ trunk/abcl/src/org/armedbear/lisp/Symbol.java	Sat Jan 14 08:37:32 2012	(r13773)
@@ -2971,6 +2971,8 @@
     PACKAGE_MOP.addExternalSymbol("EQL-SPECIALIZER");
   public static final Symbol EQL_SPECIALIZER_OBJECT =
     PACKAGE_MOP.addExternalSymbol("EQL-SPECIALIZER-OBJECT");
+  public static final Symbol FUNCALLABLE_STANDARD_OBJECT =
+    PACKAGE_MOP.addExternalSymbol("FUNCALLABLE-STANDARD-OBJECT");
   public static final Symbol SHORT_METHOD_COMBINATION =
     PACKAGE_MOP.addInternalSymbol("SHORT-METHOD-COMBINATION");
   public static final Symbol LONG_METHOD_COMBINATION =
@@ -3016,6 +3018,7 @@
     PACKAGE_MOP.addInternalSymbol("LONG-METHOD-COMBINATION-DECLARATIONS");
   public static final Symbol LONG_METHOD_COMBINATION_FORMS =
     PACKAGE_MOP.addInternalSymbol("LONG-METHOD-COMBINATION-FORMS");
+  // slot names of (long-|short-)method-combination classes
   public static final Symbol OPERATOR =
     PACKAGE_MOP.addInternalSymbol("OPERATOR");
   public static final Symbol IDENTITY_WITH_ONE_ARGUMENT =




More information about the armedbear-cvs mailing list