Changeset 14467


Ignore:
Timestamp:
04/24/13 12:50:43 (10 years ago)
Author:
rschlatte
Message:

make funcallable-standard-object a funcallable-standard-class.

  • following SBCL's behavior.
Location:
trunk/abcl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/doc/manual/abcl.tex

    r14409 r14467  
    843843specialization has a corresponding \textsc{URI} whose canonical
    844844representation is defined to be the \code{NAMESTRING} of the
    845 \cpde{CL:PATHNAME}. The \code{EXT:JAR-PATHNAME} extension further
     845\code{CL:PATHNAME}. The \code{EXT:JAR-PATHNAME} extension further
    846846specializes the the \code{EXT:URL-PATHNAME} to provide access to
    847847components of zip archives. 
     
    11081108specified in \textsc{(A)MOP}.  The symbols are exported from the
    11091109package \code{MOP}.
     1110
     1111Contrary to the AMOP specification and following \textsc{SBCL}'s lead,
     1112the metaclass \code{funcallable-standard-object} has
     1113\code{funcallable-standard-class} as metaclass instead of
     1114\code{standard-class}.
    11101115
    11111116\subsection{Specializing on Java classes}
  • trunk/abcl/doc/manual/abcl.texi

    r14405 r14467  
    14661466The symbols are exported from the package @code{MOP}.
    14671467
     1468Contrary to the AMOP specification and following SBCL's lead,
     1469the metaclass @code{funcallable-standard-object} has
     1470@code{funcallable-standard-class} as metaclass instead of
     1471@code{standard-class}.
     1472
    14681473@node Specializing on Java classes
    14691474@subsection Specializing on Java classes
  • trunk/abcl/src/org/armedbear/lisp/StandardClass.java

    r14464 r14467  
    425425  }
    426426
     427  private static final FuncallableStandardClass addFuncallableStandardClass
     428    (Symbol name, LispObject directSuperclasses)
     429  {
     430    FuncallableStandardClass c = new FuncallableStandardClass(name, directSuperclasses);
     431    addClass(name, c);
     432    return c;
     433  }
     434
    427435  // At this point, BuiltInClass.java has not been completely loaded yet, and
    428436  // BuiltInClass.CLASS_T is null. So we need to call setDirectSuperclass()
     
    467475
    468476  // BuiltInClass.FUNCTION is also null here (see previous comment).
     477  // Following SBCL's lead, we make funcallable-standard-object a
     478  // funcallable-standard-class.
    469479  public static final StandardClass FUNCALLABLE_STANDARD_OBJECT =
    470       addStandardClass(Symbol.FUNCALLABLE_STANDARD_OBJECT,
     480      addFuncallableStandardClass(Symbol.FUNCALLABLE_STANDARD_OBJECT,
    471481                       list(STANDARD_OBJECT, BuiltInClass.FUNCTION));
    472482
    473483  public static final StandardClass GENERIC_FUNCTION =
    474     new FuncallableStandardClass(Symbol.GENERIC_FUNCTION,
    475                                  list(METAOBJECT, FUNCALLABLE_STANDARD_OBJECT));
    476   static {
    477     addClass(Symbol.GENERIC_FUNCTION, GENERIC_FUNCTION);
    478   }
     484    addFuncallableStandardClass(Symbol.GENERIC_FUNCTION,
     485                                list(METAOBJECT, FUNCALLABLE_STANDARD_OBJECT));
    479486
    480487  public static final StandardClass CLASS =
Note: See TracChangeset for help on using the changeset viewer.