Commit graph

4815 commits

Author SHA1 Message Date
Juanjo Garcia-Ripoll
c21807d17c The extra options for direct slots must also be grouped into lists 2012-04-27 17:06:08 +02:00
Juanjo Garcia-Ripoll
d8547c5531 When computing the generic function dispatch, we eliminate the case in which the generic function takes too many required arguments. Slight optimizations in STD-COMPUTE-EFFECTIVE-METHOD. 2012-04-27 16:09:17 +02:00
Juanjo Garcia-Ripoll
2cc751eef8 STD-COMPUTE-EFFECTIVE-METHOD and friends are called directly 2012-04-27 14:00:03 +02:00
Juanjo Garcia-Ripoll
a366111a71 COMPUTE-EFFECTIVE-METHOD returns a form, even if it does not have the syntax people would expect. 2012-04-27 12:16:05 +02:00
Juan Jose Garcia Ripoll
06d58ddb8e Standard and MOP classes do not use slot names which live in CL or CL-USER 2012-04-26 21:46:48 +02:00
Juanjo Garcia-Ripoll
1752b034a4 Add Juanjo's copyright to files that did not have it. 2012-04-26 17:33:14 +02:00
Juanjo Garcia-Ripoll
b40b18f4e1 Create FORWARD-REFERENCED-CLASS in boot.lsp 2012-04-26 17:23:20 +02:00
Juanjo Garcia-Ripoll
656e13946c +class-hierarchy+ stores the slots in parsed form 2012-04-26 17:02:20 +02:00
Juanjo Garcia-Ripoll
47bc44daa0 In EXT:RUN-PROGRAM, synchronize the child so that it waits until the parent has set up the process structure. 2012-04-26 16:16:05 +02:00
Juanjo Garcia-Ripoll
54cce8b643 Class built-in-class is now created in boot.lsp 2012-04-26 14:51:39 +02:00
Juanjo Garcia-Ripoll
803a1fb823 Simplify and automate the creation of the basic classes in boot.lsp 2012-04-26 12:20:16 +02:00
Juanjo Garcia-Ripoll
1fc8af38ba New class METHOD-COMBINATION used in combin.lsp 2012-04-26 10:09:34 +02:00
Juan Jose Garcia Ripoll
b66c3736f3 Avoid infinite loop in cinit.d (si_safe_eval) 2012-04-25 23:39:12 +02:00
Juan Jose Garcia Ripoll
8208d94cf3 Simplified class creation in boot.lsp 2012-04-25 23:13:55 +02:00
Juan Jose Garcia Ripoll
abb677f039 class-of did not work with barriers, mailboxes and semaphores 2012-04-25 23:13:55 +02:00
Juanjo Garcia-Ripoll
6e58b9c402 The method combination slot in a generic function is now precomputed using FIND-METHOD-COMBINATION. 2012-04-25 23:13:55 +02:00
Juanjo Garcia-Ripoll
5a5f0d631b GENERIC-FUNCTION-METHOD-CLASS is a generic function 2012-04-25 16:49:03 +02:00
Juanjo Garcia-Ripoll
de10a710de Remove a class from its former superclasses when reinitializing it 2012-04-25 16:40:07 +02:00
Juan Jose Garcia Ripoll
7cd82e0130 compute-discriminating-function must not be inlined (it is a generic function) 2012-04-25 00:13:27 +02:00
Juan Jose Garcia Ripoll
7f195ec616 Verify that COMPUTE-APPLICABLE-METHODS[-USING-CLASSES] are honored by ECL 2012-04-25 00:12:47 +02:00
Juan Jose Garcia Ripoll
b90c7a0db6 Test that compute-discriminating-function is called by ECL 2012-04-25 00:02:13 +02:00
Juan Jose Garcia Ripoll
5e9b643f57 ECL's discriminating function protocol now relies on COMPUTE-APPLICABLE-METHODS-USING-CLASSES 2012-04-24 23:23:05 +02:00
Juan Jose Garcia Ripoll
deb1c7a086 When adding the standard accessors, the method functions have to be wrapped 2012-04-24 23:02:00 +02:00
Juanjo Garcia-Ripoll
28098aa27f Implemented COMPUTE-DISCRIMINATING-FUNCTION 2012-04-24 19:04:45 +02:00
Juanjo Garcia-Ripoll
d4952aa77e The :initarg for the documentation of a method is :documentation 2012-04-24 18:12:39 +02:00
Juanjo Garcia-Ripoll
0e372eca31 MAKE-METHOD-LAMBDA is a generic function. Method documentation is stored in the method itself. 2012-04-24 18:10:21 +02:00
Juanjo Garcia-Ripoll
031798b551 DEFMETHOD relies on MAKE-METHOD-LAMBDA to create the appropriate function 2012-04-24 17:29:25 +02:00
Juan Jose Garcia Ripoll
fb201406eb Wrapping is taken care of fully in INSTALL-METHOD 2012-04-23 23:09:10 +02:00
Juan Jose Garcia Ripoll
f9b2bbe062 Method functions now only take two arguments: the argument list (frame) and the list of next methods 2012-04-23 22:57:38 +02:00
Juan Jose Garcia Ripoll
c42d6ec9e1 ECL now uses and updates the DIRECT-METHODS and DIRECT-GENERIC-FUNCTIONS in specializer objects 2012-04-23 20:33:44 +02:00
Juan Jose Garcia Ripoll
434e1ad46e MAKE-LOAD-FORM specialized on STANDARD-OBJECT, STRUCTURE-OBJECT and CONDITION must signal an error 2012-04-23 19:59:02 +02:00
Juan Jose Garcia Ripoll
66d4d462a4 Methods, generic functions and dispatch is now implemented using specializers 2012-04-23 19:59:02 +02:00
Juan Jose Garcia Ripoll
ba9daa82fc Error checking when instantiating methods 2012-04-22 23:29:12 +02:00
Juan Jose Garcia Ripoll
9805fd8348 Add slots to SPECIALIZER and EQL-SPECIALIZER 2012-04-22 22:55:53 +02:00
Juan Jose Garcia Ripoll
1ecb59b7f4 Create SPECIALIER and EQL-SPECIALIZER as classes without slots 2012-04-22 21:26:00 +02:00
Juan Jose Garcia Ripoll
b9dd1309ee METAOBJECT is now created in boot.lsp as a first step towards the introduction of other classes 2012-04-22 20:08:38 +02:00
Juan Jose Garcia Ripoll
408c53c52a Implemented the METAOBJECT class 2012-04-22 02:03:47 +02:00
Juan Jose Garcia Ripoll
4c5e23fcaf Added slot GENERIC-FUNCTION-DECLARATIONS 2012-04-22 02:03:47 +02:00
Juan Jose Garcia Ripoll
a2460f3a4b EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented. 2012-04-22 02:03:46 +02:00
Juan Jose Garcia Ripoll
c78c6a49c6 ENSURE-CLASS-USING-CLASS now registers the class with FIND-CLASS 2012-04-22 00:51:00 +02:00
Juan Jose Garcia Ripoll
f1e38160b9 (SETF CLASS-NAME) is implemented using REINITIALIZE-INSTANCE 2012-04-22 00:50:00 +02:00
Juan Jose Garcia Ripoll
8a01f51096 FIND-METHOD is now a generic function. 2012-04-22 00:13:59 +02:00
Juan Jose Garcia Ripoll
7955ebda76 Slight style change in add-method. 2012-04-21 23:53:46 +02:00
Juan Jose Garcia Ripoll
79a6e3dd7b COMPUTE-APPLICABLE-METHODS-USING-CLASSES did not return a second value 2012-04-21 22:57:19 +02:00
Juan Jose Garcia Ripoll
13ed478428 Added regression tests for compute-applicable-methods-using-classes 2012-04-21 22:57:18 +02:00
Juan Jose Garcia Ripoll
18f003b6f6 By using DEFMETHOD instead of DEFGENERIC we save a few bytes 2012-04-21 22:47:08 +02:00
Juan Jose Garcia Ripoll
2dd79e9c78 Simplify the use of UPDATE-DEPENDENT, incorporating it into the core methods, instead of using :AFTER. This eliminates problems with non-compliant code redefining SHARED-INITIALIZE and friends. 2012-04-21 21:55:49 +02:00
Juan Jose Garcia Ripoll
94454151a8 Regression tests for MOP dependents 2012-04-21 21:54:53 +02:00
Juan Jose Garcia Ripoll
ea7aaaecb0 Reimplemented dependents. REMOVE-METHOD was not a generic function and did not update dependents. 2012-04-21 13:19:13 +02:00
Juan Jose Garcia Ripoll
57bcfae761 Implemented and used in the core: VALIDATE-SUPERCLASSES 2012-04-21 12:16:40 +02:00