Commit graph

119 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
cb9939d6c0 Separate lisp objects for functions with fixed and variable # arguments 2008-06-16 23:09:21 +02:00
Juan Jose Garcia Ripoll
0dbab7db8f Fixed typo. 2008-06-15 23:10:57 +02:00
Juan Jose Garcia Ripoll
9e210529e8 Split OP_MSETQ into OP_VSETQ and OP_VSETQS. 2008-06-15 10:50:32 +02:00
Juan Jose Garcia Ripoll
846d79dce3 Implement bytecodes for calling functions with 1 and 2 arguments. 2008-06-15 00:35:21 +02:00
Juan Jose Garcia Ripoll
2020fe6966 Optimize some common lisp functions 2008-06-14 22:07:20 +02:00
Juan Jose Garcia Ripoll
3c3a2699be OP_MSETQ does not use the VALUES register 2008-06-13 00:41:03 +02:00
Juan Jose Garcia Ripoll
d4c36ab18f Inline funcalls and fix problem with multiple-value-prog1 and macrolet + declarations 2008-06-12 20:00:30 +02:00
Juan Jose Garcia Ripoll
21fafd42dc Introduce bytecode closure objects to save space in FLET/LABELS forms 2008-06-11 23:49:38 +02:00
Juan Jose Garcia Ripoll
b208e43f34 Revert to the old code for multiple-value-setq 2008-06-11 20:15:14 +02:00
Juan Jose Garcia Ripoll
3453e6d56c More compact format for bytecodes OP_FLET/LABELS 2008-06-10 19:50:21 +02:00
Juan Jose Garcia Ripoll
33861197f3 Split operator MSETQ into VSETQ and VSETQS. 2008-06-09 19:19:25 +02:00
Juan Jose Garcia Ripoll
93586f613c Only use OP_VBIND[S] for values other than 0-th 2008-06-09 18:40:23 +02:00
Juan Jose Garcia Ripoll
7bdc8ce4cd ecl_interpret returns the first value 2008-06-09 18:30:58 +02:00
Juan Jose Garcia Ripoll
5c82dc7e80 COND and PROG1 now operate using only REG0 and the stack 2008-06-09 14:28:26 +02:00
Juan Jose Garcia Ripoll
bbf7c9dea6 Allow COND forms to use REG0 to store computations, instead of forcing use of VALUES. 2008-06-09 11:54:52 +02:00
Juan Jose Garcia Ripoll
ee88cc241e Since OP_JT/JNIL check reg0, we can simplify the bytecodes for WHILE 2008-06-09 11:38:34 +02:00
Juan Jose Garcia Ripoll
e400b3fb46 Simplify bytecodes compiler by rewriting IF as a COND. 2008-06-09 11:27:34 +02:00
Juan Jose Garcia Ripoll
6d1f4e8c15 Inline OP_PROGV. 2008-06-08 23:10:41 +02:00
Juan Jose Garcia Ripoll
2ac39d71bb Removed global environment field cl_env.lex_env 2008-06-08 20:30:35 +02:00
Juan Jose Garcia Ripoll
2d77670383 ecl_interpret() now takes an explicit lexical environment argument. 2008-06-08 18:38:38 +02:00
jgarcia
e418eeb8e7 Improved presentation of interpreted forms in the backtraces. These forms can now be inspected. 2008-05-22 11:15:58 +00:00
jgarcia
8f28327ddf Simplifed MAKE-ARRAY. Deactivated the old garbage collector. New optimizers for MAKE-ARRAY and VECTOR-PUSH*. Declarations are now held in *cmp-env* instead of in global variables. 2008-05-18 20:08:39 +00:00
jgarcia
8800b254f5 Committed the changes to implement small conses 2008-04-30 14:24:20 +00:00
jgarcia
504fe5df73 LOAD-TIME-VALUE is no longer a macro 2008-04-24 11:15:34 +00:00
jgarcia
7e8f73c990 The forms evaluated with EVAL also know their origin if they come from a file. 2008-04-24 07:44:18 +00:00
jgarcia
5243018392 The debugger outputs the file information of interpreted functions, which now contains load-truename instead of load-pathname 2008-04-22 13:02:45 +00:00
jgarcia
b4e1916be1 Let interpreted forms remember the file they come from 2008-04-22 12:29:44 +00:00
jgarcia
52f4df1901 Merged the new function call code 2008-02-16 10:28:32 +00:00
jgarcia
cd07aee2f4 Remove unused blocks 2008-01-26 13:29:41 +00:00
jgarcia
5ef5d32e74 Enforce indent and mode conditions on files 2008-01-26 10:30:41 +00:00
jgarcia
3f9a080eea Show offending form when syntax error happens. 2007-07-12 09:09:53 +00:00
jgarcia
aa3dfe4058 Prefix most functions with 'ecl_' to avoid name collisions when embedding ECL in other libraries 2007-01-18 11:46:07 +00:00
jgarcia
6b5f1fd969 Implemented generic type checker based on ecl type tags and used it to replace multiple assertions. 2006-10-30 10:50:58 +00:00
jgarcia
363d11b287 ecl_output_stream_p now works with smm_probe 2006-10-27 22:31:04 +00:00
jgarcia
ccd014fef3 Make MACROLET safer by blocking all references to local variables and functions. 2006-06-17 16:04:40 +00:00
jgarcia
a2fdf244f7 Make MACROLET a bit safer -- a least in the C compiler. 2006-06-17 16:01:04 +00:00
jgarcia
fd3aeae14a MACROLET functions are created in an environment that contains enclosing MACROLET and SYMBOL-MACRO DEFINITIONS. 2006-06-17 16:00:08 +00:00
jgarcia
f36f53a933 Remove redundant function. 2006-06-12 08:51:47 +00:00
jgarcia
1666ae1468 Allow users to provide a compiler environment when building interpreted code. 2006-06-12 08:51:43 +00:00
jgarcia
ab2da5b861 EXPAND-DEFMACRO now outputs a lambda block. 2006-06-12 08:51:38 +00:00
jgarcia
ff0be77070 Support for unicode strings as data structure (no clever handling of characters yet) contributed by Brian Spilsbury. 2006-05-29 08:51:21 +00:00
jgarcia
6ecb05deb9 Reduced the number of functions dealing with macros. The second value of MACROEXPAND-1 is T whenever the macro function was called. MACROEXPAND detects some infinite loops. 2006-05-20 22:17:03 +00:00
jgarcia
a952b2c796 Simplifed the implementation of DEFMETHOD 2006-04-18 19:25:58 +00:00
jjgarcia
936b7fb6f6 Header files are now kept in a directory named 'ecl', so as to avoid name clashes with other headers. 2006-02-28 14:05:47 +00:00
jjgarcia
54b542b97c Control whether it is allowed to assign a value to undefined variables. 2005-11-23 11:05:59 +00:00
jjgarcia
c91a860688 The block name of a function does not include the lambda list. 2005-10-24 08:37:26 +00:00
jjgarcia
bfceb89a55 MULTIPLE-VALUE-SETQ must output _only_ the primary value. 2005-10-24 08:33:52 +00:00
jjgarcia
5643e40059 Implemented DOLIST/DOTIMES as macros, without magic in the interpreter. 2005-10-24 08:33:32 +00:00
jjgarcia
ef8fbc903d Fixes for the old garbage collector 2005-10-08 14:46:09 +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