Commit graph

47 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
f36b002a5f Slight optimization of the function that searches closure boundaries in CLOS 2012-03-18 13:24:35 +01:00
Juan Jose Garcia Ripoll
70b3b2635e Remove implicit type declarations in DEFMETHOD because the arguments to the function may be changed by the body itself. 2012-02-16 23:23:15 +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
4b2eca745a Replace more uses of DEFVAR with DEFPARAMETER 2011-12-10 20:12:14 +01:00
Juan Jose Garcia Ripoll
76a0f027a6 When using DEFMETHOD we called EVAL-WITH-ENV using :load-toplevel mode instead of :execute. This causes some trouble. Until the bytecodes compiler is revised we may safely fall back to :execute. 2010-07-13 23:18:07 +02:00
Juan Jose Garcia Ripoll
4fb36efd04 In WALK-METHOD-LAMBDA use eval-with-env to get access to the macros that are defined in the compiler environment 2010-07-11 15:10:20 +02:00
Juan Jose Garcia Ripoll
d88da2f8f3 Precompute the list of keywords in a method 2010-06-20 19:15:14 +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
ba3efd844f Fixed the CALL-NEXT-METHOD closure. 2010-02-16 21:52:07 +01:00
Juan Jose Garcia Ripoll
bbd35c1a6f Methods now show up in the debugger with their original name. 2009-12-02 16:02:14 +01:00
Juan Jose Garcia Ripoll
8265f44396 src/clos/method.lsp: use the (APPEND ... NIL) idiom to ensure that a fresh list is produced. 2009-11-14 17:36:55 +01:00
Juan Jose Garcia Ripoll
7607ec041c Added hooks for registering DEF* forms and their locations with some database. 2008-07-12 16:09:53 +02:00
Juan Jose Garcia Ripoll
212fbd1d22 In methods function's type declarations, the type and the name were swapped 2008-06-04 22:59:49 +02:00
jgarcia
4e46efac3f Automatically generate type checks for arguments of a lambda form if the safety settings are high enough 2008-05-12 08:16:44 +00:00
jgarcia
9e294b8965 Restore a partial optimization of slot access and remove some warnings about method combination's global variables 2008-04-29 08:41:01 +00:00
jgarcia
25201a0bef Implement standard-accessor-method 2008-04-28 15:23:12 +00:00
jgarcia
52f4df1901 Merged the new function call code 2008-02-16 10:28:32 +00:00
jgarcia
a59f90871a Emacs modelines for better editing 2008-02-02 19:14:05 +00:00
jgarcia
d4e15d5910 Comment the code 2006-05-05 15:19:43 +00:00
jgarcia
a952b2c796 Simplifed the implementation of DEFMETHOD 2006-04-18 19:25:58 +00:00
jjgarcia
2d5bb45946 Replaced the code walker with some hooks in the bytecodes compiler and use this for the analysis of method functions. The optimizations of SLOT-VALUE references are removed, since they are buggy. 2005-09-19 09:31:01 +00:00
jjgarcia
7b762a99c4 New functions for performing type inference.
Arithmetic operators *,+,/,- now have simple optimizers.
Fixed several "bugs" in the C code to let ECL compile with GCC 4.0
2005-08-12 15:23:10 +00:00
jjgarcia
3d1e56e0ec Evaluation of the constant in EQL specializers now takes place in the lexical environment in which DEFMETHOD is enclosed. 2005-08-09 08:08:46 +00:00
jjgarcia
9052752e65 Reorganized the list of inliners and inline information, storing it in more detailed structures 2005-08-08 08:09:25 +00:00
jjgarcia
55d0dcd075 Fixed the optimizer for slot access. All classes have DOCUMENTATION slot. CLASS-PROTOTYPE is now a reader, not an accessor. 2005-04-11 10:08:33 +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
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
jjgarcia
32d681daf8 PARSE-DEFMETHOD failed on empty lambda lists 2004-12-06 09:40:51 +00:00
jjgarcia
72dc89f61b Fixed generation of function prototypes, and other glitches so that the lisp code can be compiled with a C++ compiler. The core library is still compiled with a C compiler. 2004-03-03 09:18:20 +00:00
jjgarcia
b8d27be483 Dummy implementation of MAKE-LOAD-FORM and MAKE-LOAD-FORM-SAVING-SLOTS. Supports for normal lisp objects and structures is missing. 2004-01-20 08:53:24 +00:00
jjgarcia
90a0382ae8 + Fixes in the routines that deal with pathnames: it is now possible to
use *DEFAULT-PATHNAME-DEFAULTS* as current working directory, because it
is set to the initial directory and because it can be updated with SI::CHDIR.
+ Pathname versions are now properly handled and printed. At least for logical
pathnames, because physical namestrings cannot have version numbers.
+ An error is signaled when one tries to print _readably_ a pathname that does
not have a namestring such that parsing this namestring produces the same
pathname. This happens, for instance, with pathnames that do not have hosts,
or that have version numbers and are not logical.
+ Fixes in the CLOS subsystem: ADD-METHOD and REMOVE-METHOD now update the
GENERIC-FUNCTION slot of method objects, and output the right values.
It is now possible to use two nested SYMBOL-MACROLET that define the same
symbols.
2004-01-08 11:03:05 +00:00
jjgarcia
0290efd01c Implemented the class redefinition protocol, and forward referenced classes. 2003-12-15 08:54:10 +00:00
jjgarcia
630bfdf4f4 Clean up the package CL from non-standard symbols and move them into the EXT package, which is a nickname for SYSTEM. 2003-12-11 17:16:48 +00:00
jjgarcia
e5072a82d9 Use user-supplied DPP to build the C files. machines.h is no longer required. 2003-07-23 13:09:37 +00:00
jjgarcia
47fdf3eebe Method combinations implemented. Bug involving EQL specializers not being compared with EQL solved. 2003-07-16 17:30:18 +00:00
jjgarcia
5e56be36a8 ECL ported to Solaris/SPARC-32 2003-07-01 12:28:44 +00:00
jjgarcia
737571a68a Rename several accessors according to AMOP 2003-06-27 10:23:06 +00:00
jjgarcia
eb0e98c2e3 Changes on the CLOS bootstrapping sequence (which is now done entirely in
LISP), and minor bugfixes.
2003-06-25 14:46:42 +00:00
jjgarcia
c2aa136143 Various minor fixes, and an important set of changes to teach the compiler
and the interpreter to understand (SETF fname) function names, and to handle
them without creating auxiliary symbols.
2003-04-28 15:55:22 +00:00
jjgarcia
f20736084b Add more symbols to src/c/symbols_list.h, and resolve associated conflicts. 2003-04-28 09:25:58 +00:00
jjgarcia
6b76d155ee Create new functions SI::{GET,PUT,REM}-SYSPROP to handle vital information
about functions, SETF forms, DEFTYPEs, etc. Property lists are no longer
used for this task.
2003-03-21 14:18:56 +00:00
jjgarcia
9771e91572 + New implementation of DESTRUCTURING-BIND
+ The bytecodes compiler now alloes a lambda list with &key and no keywords
+ WITH-HASHTABLE-ITERATOR implemented
+ QUIT is now silent
+ In MAKE-PATHNAME, values supplied with a value of NIL would be overwritten
  by the content of :DEFAULTS.
2003-03-04 16:35:03 +00:00
jjgarcia
bf8a3c21a9 Replaced LET -> LET* to make C code smaller, wherever it is possible. 2002-12-04 15:40:42 +00:00
jjgarcia
b0ce08d0ea Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG. 2002-11-04 14:08:24 +00:00
jjgarcia
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00