diff --git a/src/CHANGELOG b/src/CHANGELOG index bb6c35e35..d331e3497 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -70,6 +70,10 @@ ECL 0.9i macro, as in ECL_SYM("SI::*EXIT-HOOKS*",1379) (Thanks to Douglas R. Miles for the idea). + - The symbols from the AMOP are now exported from the CLOS package. This does + not mean that everything has been implemented, but it makes the implemented + options accessible. + * Errors fixed: - The intermediate output of the compiler is written in the directory in which diff --git a/src/c/gfun.d b/src/c/gfun.d index 2903465f7..31853287e 100644 --- a/src/c/gfun.d +++ b/src/c/gfun.d @@ -138,7 +138,7 @@ compute_method(cl_narg narg, cl_object gf, cl_object *args) arglist); return NULL; } - func = funcall(4, @'si::compute-effective-method', gf, + func = funcall(4, @'clos::compute-effective-method', gf, GFUN_COMB(gf), methods); /* update cache */ set_meth_hash(argtype, spec_no, table, func); diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index f08ad39fb..ed7fff23f 100644 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -1201,7 +1201,6 @@ cl_symbols[] = { {SYS_ "STRUCTURE-INCLUDE", SI_ORDINARY, NULL, -1, OBJNULL}, #else {SYS_ "CHANGE-INSTANCE", SI_ORDINARY, NULL, 4, OBJNULL}, -{SYS_ "COMPUTE-EFFECTIVE-METHOD", SI_ORDINARY, NULL, -1, OBJNULL}, {SYS_ "COPY-INSTANCE", SI_ORDINARY, si_copy_instance, 1, OBJNULL}, {SYS_ "GENERIC-FUNCTION-P", SI_ORDINARY, si_generic_function_p, 1, OBJNULL}, {SYS_ "INSTANCE-REF-SAFE", SI_ORDINARY, si_instance_ref_safe, 2, OBJNULL}, @@ -1523,16 +1522,90 @@ cl_symbols[] = { {SYS_ "*EXIT-HOOKS*", SI_SPECIAL, NULL, -1, Cnil}, #ifdef CLOS +{CLOS_ "ACCESSOR-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ACCESSOR-METHOD-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ADD-DEPENDENT", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ADD-DIRECT-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ADD-DIRECT-SUBCLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-DEFAULT-INITARGS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-DIRECT-DEFAULT-INITARGS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-DIRECT-SLOTS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-DIRECT-SUBCLASSES", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-DIRECT-SUPERCLASSES", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-FINALIZED-P", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-PRECEDENCE-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-PROTOTYPE", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "CLASS-SLOTS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-APPLICABLE-METHODS-USING-CLASSES", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-CLASS-PRECEDENCE-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-DEFAULT-INITARGS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-DISCRIMINATING-FUNCTION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-EFFECTIVE-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-EFFECTIVE-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "COMPUTE-SLOTS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "DIRECT-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "DIRECT-SLOT-DEFINITION-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EFFECTIVE-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EFFECTIVE-SLOT-DEFINITION-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ENSURE-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ENSURE-CLASS-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "ENSURE-GENERIC-FUNCTION-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EQL-SPECIALIZER", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EQL-SPECIALIZER-OBJECT", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EXTRACT-LAMBDA-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "EXTRACT-SPECIALIZER-NAMES", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FINALIZE-INHERITANCE", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FIND-METHOD-COMBINATION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FORWARD-REFERENCED-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FUNCALLABLE-", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FUNCALLABLE-STANDARD-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "FUNCALLABLE-STANDARD-INSTANCE-ACCESS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-DECLARATIONS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-LAMBDA-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-METHOD-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-METHOD-COMBINATION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-METHODS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "GENERIC-FUNCTION-NAME", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "INTERN-EQL-SPECIALIZER", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "MAKE-METHOD-LAMBDA", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "MAP-DEPENDENTS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "METAOBJECT", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "METHOD-FUNCTION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "METHOD-GENERIC-FUNCTION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "METHOD-LAMBDA-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "METHOD-SPECIALIZERS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "READER-METHOD-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "REMOVE-DEPENDENT", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "REMOVE-DIRECT-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "REMOVE-DIRECT-SUBCLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SET-FUNCALLABLE-INSTANCE-FUNCTION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SLOT-BOUNDP-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-ALLOCATION", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-INITARGS", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-INITFORM", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-INITFUNCTION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SLOT-DEFINITION-LOCATION", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-NAME", CLOS_ORDINARY, NULL, -1, OBJNULL}, -{CLOS_ "SLOT-DEFINITION-TYPE", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-READERS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SLOT-DEFINITION-TYPE", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "SLOT-DEFINITION-WRITERS", CLOS_ORDINARY, NULL, -1, OBJNULL}, -{CLOS_ "SLOT-DEFINITION-DOCUMENTATION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SLOT-MAKUNBOUND-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SLOT-VALUE-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SPECIALIZER", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SPECIALIZER-DIRECT-GENERIC-FUNCTIONS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "SPECIALIZER-DIRECT-METHODS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-DIRECT-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-EFFECTIVE-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-INSTANCE-ACCESS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-READER-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-SLOT-DEFINITION", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "STANDARD-WRITER-METHOD", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "UPDATE-DEPENDENT", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "VALIDATE-SUPERCLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "WRITER-METHOD-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL}, #endif {SYS_ "CL-FIXNUM-BITS", SI_CONSTANT, NULL, -1, MAKE_FIXNUM(FIXNUM_BITS)}, diff --git a/src/c/symbols_list2.h b/src/c/symbols_list2.h index aa6413c33..736e4b208 100644 --- a/src/c/symbols_list2.h +++ b/src/c/symbols_list2.h @@ -1201,7 +1201,6 @@ cl_symbols[] = { {SYS_ "STRUCTURE-INCLUDE",NULL}, #else {SYS_ "CHANGE-INSTANCE",NULL}, -{SYS_ "COMPUTE-EFFECTIVE-METHOD",NULL}, {SYS_ "COPY-INSTANCE","si_copy_instance"}, {SYS_ "GENERIC-FUNCTION-P","si_generic_function_p"}, {SYS_ "INSTANCE-REF-SAFE","si_instance_ref_safe"}, @@ -1523,16 +1522,90 @@ cl_symbols[] = { {SYS_ "*EXIT-HOOKS*",NULL}, #ifdef CLOS +{CLOS_ "ACCESSOR-METHOD",NULL}, +{CLOS_ "ACCESSOR-METHOD-SLOT-DEFINITION",NULL}, +{CLOS_ "ADD-DEPENDENT",NULL}, +{CLOS_ "ADD-DIRECT-METHOD",NULL}, +{CLOS_ "ADD-DIRECT-SUBCLASS",NULL}, +{CLOS_ "CLASS-DEFAULT-INITARGS",NULL}, +{CLOS_ "CLASS-DIRECT-DEFAULT-INITARGS",NULL}, +{CLOS_ "CLASS-DIRECT-SLOTS",NULL}, +{CLOS_ "CLASS-DIRECT-SUBCLASSES",NULL}, +{CLOS_ "CLASS-DIRECT-SUPERCLASSES",NULL}, +{CLOS_ "CLASS-FINALIZED-P",NULL}, +{CLOS_ "CLASS-PRECEDENCE-LIST",NULL}, +{CLOS_ "CLASS-PROTOTYPE",NULL}, +{CLOS_ "CLASS-SLOTS",NULL}, +{CLOS_ "COMPUTE-APPLICABLE-METHODS-USING-CLASSES",NULL}, +{CLOS_ "COMPUTE-CLASS-PRECEDENCE-LIST",NULL}, +{CLOS_ "COMPUTE-DEFAULT-INITARGS",NULL}, +{CLOS_ "COMPUTE-DISCRIMINATING-FUNCTION",NULL}, +{CLOS_ "COMPUTE-EFFECTIVE-METHOD",NULL}, +{CLOS_ "COMPUTE-EFFECTIVE-SLOT-DEFINITION",NULL}, +{CLOS_ "COMPUTE-SLOTS",NULL}, +{CLOS_ "DIRECT-SLOT-DEFINITION",NULL}, +{CLOS_ "DIRECT-SLOT-DEFINITION-CLASS",NULL}, +{CLOS_ "EFFECTIVE-SLOT-DEFINITION",NULL}, +{CLOS_ "EFFECTIVE-SLOT-DEFINITION-CLASS",NULL}, +{CLOS_ "ENSURE-CLASS",NULL}, +{CLOS_ "ENSURE-CLASS-USING-CLASS",NULL}, +{CLOS_ "ENSURE-GENERIC-FUNCTION-USING-CLASS",NULL}, +{CLOS_ "EQL-SPECIALIZER",NULL}, +{CLOS_ "EQL-SPECIALIZER-OBJECT",NULL}, +{CLOS_ "EXTRACT-LAMBDA-LIST",NULL}, +{CLOS_ "EXTRACT-SPECIALIZER-NAMES",NULL}, +{CLOS_ "FINALIZE-INHERITANCE",NULL}, +{CLOS_ "FIND-METHOD-COMBINATION",NULL}, +{CLOS_ "FORWARD-REFERENCED-CLASS",NULL}, +{CLOS_ "FUNCALLABLE-",NULL}, +{CLOS_ "FUNCALLABLE-STANDARD-CLASS",NULL}, +{CLOS_ "FUNCALLABLE-STANDARD-INSTANCE-ACCESS",NULL}, +{CLOS_ "GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER",NULL}, +{CLOS_ "GENERIC-FUNCTION-DECLARATIONS",NULL}, +{CLOS_ "GENERIC-FUNCTION-LAMBDA-LIST",NULL}, +{CLOS_ "GENERIC-FUNCTION-METHOD-CLASS",NULL}, +{CLOS_ "GENERIC-FUNCTION-METHOD-COMBINATION",NULL}, +{CLOS_ "GENERIC-FUNCTION-METHODS",NULL}, +{CLOS_ "GENERIC-FUNCTION-NAME",NULL}, +{CLOS_ "INTERN-EQL-SPECIALIZER",NULL}, +{CLOS_ "MAKE-METHOD-LAMBDA",NULL}, +{CLOS_ "MAP-DEPENDENTS",NULL}, +{CLOS_ "METAOBJECT",NULL}, +{CLOS_ "METHOD-FUNCTION",NULL}, +{CLOS_ "METHOD-GENERIC-FUNCTION",NULL}, +{CLOS_ "METHOD-LAMBDA-LIST",NULL}, +{CLOS_ "METHOD-SPECIALIZERS",NULL}, +{CLOS_ "READER-METHOD-CLASS",NULL}, +{CLOS_ "REMOVE-DEPENDENT",NULL}, +{CLOS_ "REMOVE-DIRECT-METHOD",NULL}, +{CLOS_ "REMOVE-DIRECT-SUBCLASS",NULL}, +{CLOS_ "SET-FUNCALLABLE-INSTANCE-FUNCTION",NULL}, +{CLOS_ "SLOT-BOUNDP-USING-CLASS",NULL}, {CLOS_ "SLOT-DEFINITION",NULL}, {CLOS_ "SLOT-DEFINITION-ALLOCATION",NULL}, {CLOS_ "SLOT-DEFINITION-INITARGS",NULL}, {CLOS_ "SLOT-DEFINITION-INITFORM",NULL}, {CLOS_ "SLOT-DEFINITION-INITFUNCTION",NULL}, +{CLOS_ "SLOT-DEFINITION-LOCATION",NULL}, {CLOS_ "SLOT-DEFINITION-NAME",NULL}, -{CLOS_ "SLOT-DEFINITION-TYPE",NULL}, {CLOS_ "SLOT-DEFINITION-READERS",NULL}, +{CLOS_ "SLOT-DEFINITION-TYPE",NULL}, {CLOS_ "SLOT-DEFINITION-WRITERS",NULL}, -{CLOS_ "SLOT-DEFINITION-DOCUMENTATION",NULL}, +{CLOS_ "SLOT-MAKUNBOUND-USING-CLASS",NULL}, +{CLOS_ "SLOT-VALUE-USING-CLASS",NULL}, +{CLOS_ "SPECIALIZER",NULL}, +{CLOS_ "SPECIALIZER-DIRECT-GENERIC-FUNCTIONS",NULL}, +{CLOS_ "SPECIALIZER-DIRECT-METHODS",NULL}, +{CLOS_ "STANDARD-",NULL}, +{CLOS_ "STANDARD-DIRECT-SLOT-DEFINITION",NULL}, +{CLOS_ "STANDARD-EFFECTIVE-SLOT-DEFINITION",NULL}, +{CLOS_ "STANDARD-INSTANCE-ACCESS",NULL}, +{CLOS_ "STANDARD-READER-METHOD",NULL}, +{CLOS_ "STANDARD-SLOT-DEFINITION",NULL}, +{CLOS_ "STANDARD-WRITER-METHOD",NULL}, +{CLOS_ "UPDATE-DEPENDENT",NULL}, +{CLOS_ "VALIDATE-SUPERCLASS",NULL}, +{CLOS_ "WRITER-METHOD-CLASS",NULL}, #endif {SYS_ "CL-FIXNUM-BITS",NULL}, diff --git a/src/clos/kernel.lsp b/src/clos/kernel.lsp index c85bce48d..43e177b8e 100644 --- a/src/clos/kernel.lsp +++ b/src/clos/kernel.lsp @@ -10,7 +10,7 @@ (defpackage "CLOS" (:use "CL") (:import-from "SI" "UNBOUND" "GET-SYSPROP" "PUT-SYSPROP" "REM-SYSPROP" - "COMPUTE-EFFECTIVE-METHOD" "SIMPLE-PROGRAM-ERROR")) + "SIMPLE-PROGRAM-ERROR")) (in-package "CLOS")