Commit graph

67 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
4b19fb3f60 Create new classes for the optimized slot reader/writer methods that ECL creates. 2012-10-14 11:57:41 +02:00
Juan Jose Garcia Ripoll
44a9552782 Remove the phases that create accessors in fixup.lsp and in slot.lsp 2012-10-10 21:56:43 +02:00
Juan Jose Garcia Ripoll
5be366b8e0 Slot definitions are now always instances, not lists 2012-10-07 22:09:45 +02:00
Juan Jose Garcia Ripoll
3fc09351ea Final changes to make all accessors generic functions, including the MOP standard ones, avoiding infinite recursion. 2012-10-07 22:09:44 +02:00
Juan Jose Garcia Ripoll
d799c7a4e7 All accessors are redefined as generic functions after bootstrapping ECL 2012-10-05 23:04:12 +02:00
Juan Jose Garcia Ripoll
822a18386f FIND-METHOD-COMBINATION is now generic 2012-04-28 10:42:42 +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
5a5f0d631b GENERIC-FUNCTION-METHOD-CLASS is a generic function 2012-04-25 16:49:03 +02:00
Juanjo Garcia-Ripoll
28098aa27f Implemented COMPUTE-DISCRIMINATING-FUNCTION 2012-04-24 19:04:45 +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
66d4d462a4 Methods, generic functions and dispatch is now implemented using specializers 2012-04-23 19:59:02 +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
408c53c52a Implemented the METAOBJECT class 2012-04-22 02:03:47 +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
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
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
Juan Jose Garcia Ripoll
ec6553ce88 COMPUTE-APPLICABLE-METHODS and CLOS:COMPUTE-EFFECTIVE-METHOD are now generic functions 2012-04-21 09:12:45 +02:00
Juan Jose Garcia Ripoll
efda16f3d2 Implemented CLOS:COMPUTE-APPLICABLE-METHODS-USING-CLASSES 2012-04-20 23:47:33 +02:00
Juan Jose Garcia Ripoll
ca0222fd19 Implemented EXT:TRULY-THE and made THE expand to either EXT:TRULY-THE or EXT:CHECKED-VALUE depending on the optimization settings. 2011-12-31 19:37:13 +01:00
Juan Jose Garcia Ripoll
4496a85039 More fixes to remove warnings about unused variables 2011-12-23 22:36:32 +01:00
Juan Jose Garcia Ripoll
7a2d30770b Add IGNORE declarations and remove some unused variables. 2011-12-23 15:38:37 +01:00
Juan Jose Garcia Ripoll
9d557937b1 Added new dispatch functions for slot accessors. 2011-12-16 22:12:56 +01:00
Juan Jose Garcia Ripoll
0019235c25 Implemented caching of valid keywords for SHARED-INITIALIZE 2010-06-20 20:57:09 +02:00
Juan Jose Garcia Ripoll
f77ae37309 Reimplemented CLOS dependents so that they can be used for bootstrapping 2010-06-20 18:38:55 +02:00
Juan Jose Garcia Ripoll
82d20eb08a Added dependent objects for classes and generic functions 2010-06-20 16:57:47 +02:00
Juan Jose Garcia Ripoll
ce91c03f9d * Created a new class, FUNCALLABLE-STANDARD-CLASS.
* Create a new class STD-CLASS that sits between CLASS and the
  two children STANDARD-CLASS and FUNCALLABLE-STANDARD-CLASS.
* Generic functions are now of type FUNCALLABLE-STANDARD-OBJECT.
Based on a patch by A. Gavrilov.
2009-11-08 00:58:36 +01:00
Juan Jose Garcia Ripoll
41c4586f65 NO-APPLICABLE-METHOD now shows the types of the arguments when signalling an error. 2009-11-01 02:37:38 +01:00
Samium Gromoff
2e97251a96 Rename: s/SLOT-DEFINITION-TO-LIST/SLOT-DEFINITION-TO-PLIST/ 2009-04-09 19:22:20 +02:00
jgarcia
25201a0bef Implement standard-accessor-method 2008-04-28 15:23:12 +00:00
jgarcia
a59f90871a Emacs modelines for better editing 2008-02-02 19:14:05 +00:00
jgarcia
4356e84222 Use thread-local hashes instead of per-function hashes to cache the results of invoking generic functions 2008-01-06 15:44:04 +00:00
jgarcia
5e31168db1 Improved identification of wrong declarations. Simplified code for that. 2006-04-24 08:44:44 +00:00
jgarcia
61d014339f Fixed the transformation of slot definitions from the list form to the final standard-slot-definition instances. 2006-04-18 19:27:47 +00:00
jjgarcia
d41d4544e8 Slot accessors go now through slot definition objects. 2006-03-20 09:03:43 +00:00
jjgarcia
e6344bbf0d New accessors using standard slot definition objects 2006-03-07 09:18:35 +00:00
jjgarcia
9b720a0c73 Several slot accessors are now specialized on standard-effective-slot-definition 2006-03-06 09:53:01 +00:00
jjgarcia
f0f5cd6e53 The slot DOCUMENTATION from generic functions is now initialized to NIL. 2005-10-24 08:36:38 +00:00
jjgarcia
39d35ffa38 Implemented SLOT-DEFINITION objects together with the associated protocols (Field position still missing). 2005-02-25 16:16:57 +00:00
jjgarcia
a2e2990440 Introducing sequence iterators. Fixes in the reader regarding *read-suppress* and reading of vectors. 2005-01-24 08:57:46 +00:00
jjgarcia
dd39b19a32 Fixes in various reader macros (#*, #(,#C)). Stream mode smm_closed disappears and closing of files preserves the original type of stream. Implemented METHOD-COMBINATION-ERROR, INVALID-METHOD-ERROR, option :ARGUMENT-PRECEDENCE-ORDER. In loop, iteration statements can now only appear before body statements, otherwise an error is signaled. A DEFTYPE form optional arguments have default value * 2005-01-10 09:41:06 +00:00
jjgarcia
ea7b544af3 Xmas fixes. See CHANGELOG for list of changes. 2005-01-07 11:51:23 +00:00