Commit graph

56 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
c83303354c Wrong size of bytecodes when splitting the bytecodes 2011-02-04 22:56:37 +01:00
Juan Jose Garcia Ripoll
1a775ca835 SI:BC-SPLIT and SI:BC-JOIN now as means to deconstruct and join a bytecodes object. 2011-02-04 21:52:05 +01:00
Juan Jose Garcia Ripoll
f682dda3f4 Functions can now carry information about the source file and its position. 2009-06-07 01:14:16 +02:00
Juan Jose Garcia Ripoll
77cde5c2f8 Several fixes for various compiler warnings. 2009-06-07 00:02:49 +02:00
Juan Jose Garcia Ripoll
03ed288a85 New bytecodes for parsing the arguments of an interpreted function. 2009-02-21 00:07:16 +01:00
Juan Jose Garcia Ripoll
70c64f9652 The macros/functions for accessing and changing symbol values require an environment value. 2008-10-12 16:44:29 +02:00
Juan Jose Garcia Ripoll
5a41a55a2d Since dpp now generates code that uses 'the_env', it has to be defined in functions that use @(return) 2008-10-11 23:47:40 +02:00
Juan Jose Garcia Ripoll
98b4e216e8 Split an opcode for actual frame creation from those for frame identification. 2008-06-22 16:44:34 +02:00
Juan Jose Garcia Ripoll
38d4306a09 si::bc-disassemble did not know about OP_[P]INT 2008-06-22 11:13:54 +02:00
Juan Jose Garcia Ripoll
29c45b2c89 Extend c_new_env as a step towards changing the lexical environments. 2008-06-18 10:43:34 +02:00
Juan Jose Garcia Ripoll
a8c7c95ef0 Simplify the interpreter code for calling functions 2008-06-17 19:46:18 +02:00
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
34c363cc9f Avoid using FORMAT when it has not been defined. 2008-06-15 23:05:29 +02:00
Juan Jose Garcia Ripoll
5ef5df4135 Turn the macros in bytecodes.h into standalone forms that output no value. This restriction allows us to have more complex code in them. 2008-06-15 19:17:42 +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
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
2ac39d71bb Removed global environment field cl_env.lex_env 2008-06-08 20:30:35 +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
b4e1916be1 Let interpreted forms remember the file they come from 2008-04-22 12:29:44 +00:00
jgarcia
5ef5d32e74 Enforce indent and mode conditions on files 2008-01-26 10:30:41 +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
fa937337f8 Some lisp functions with non-standard names (base-char-p, base-string) are renamed and moved to the SYS package. socket.lsp fixed to understand base strings. limited support for arbitrary strings in string streams. 2006-05-29 08:51:28 +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
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
5643e40059 Implemented DOLIST/DOTIMES as macros, without magic in the interpreter. 2005-10-24 08:33:32 +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
ea7b544af3 Xmas fixes. See CHANGELOG for list of changes. 2005-01-07 11:51:23 +00:00
jjgarcia
3246405dcc Imported the PRETTY-PRINTER from CMUCL and integrated it with the previously commited format.lsp. The old pretty printer remains merged in and is used by default. 2004-05-12 08:07:53 +00:00
jjgarcia
58cf3c6b9d Fixed problems with STEP and forms that have to be evaluated at compilation time, such as toplevel PROGN, EVAL-WHEN, etc. 2003-11-26 18:40:46 +00:00
jjgarcia
72a90f9e90 Stepper implemented 2003-11-26 08:51:52 +00:00
jjgarcia
02fddd850d TRACE now handles the new bytecodes format, and SI::BC-SPLIT now outputs an array with the data of a bytecodes function. 2003-11-25 15:56:21 +00:00
jjgarcia
4eac79774e Preliminary support for POSIX threads. 2003-11-18 11:23:07 +00:00
jjgarcia
4b11900381 By default, bytecodes are built using 16-bits integers. This avoids SIGBUS due to pointer misalignment in Alpha and SPARC architectures. 2003-10-30 10:30:37 +00:00
jjgarcia
df97ca1b92 Fixed bug that prevented compilation under windows. ECL is now built as a single shared library on systems which support it. The compiler is being rewritten using higher level, more expressive functions. 2003-09-08 16:53:29 +00:00
jjgarcia
ee391629b6 New bytecodes compiler and interpreter, which use 8-bits large bytecodes and
16-bits large arguments.
Macros are implemented as two-argument functions, leaving argument checking
to funcall() and apply() and thus saving space.
AND, WHEN and OR are plain macros. No optimizer is required in the bytecodes
compiler.
2003-08-05 10:01:57 +00:00
jjgarcia
8417f93d2e FORMATTER implemented. FORMAT ported from CMUCL and optionally included when --with-cmuformat is used at configuration time. 2003-07-31 16:37:46 +00:00
jjgarcia
45d863b054 Change the order in which variables of a MULTIPLE-VALUE-SETQ form are assigned. 2003-04-10 17:38:17 +00:00
jjgarcia
41c0868469 Bunch of fixes. See CHANGELOG. 2003-03-17 10:39:08 +00:00
jjgarcia
5f6f65b407 Bunch of fixes inspired by the ANSI test suite of GCL. 2003-03-10 09:10:13 +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
b0ce08d0ea Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG. 2002-11-04 14:08:24 +00:00
jjgarcia
39539e5714 Add new operator OP_LFUNCTION and remove OP_CALL/OP_PCALL. This results in
a simplification of the code for OP_FUNCTION, which may assume that the
function to be searched is a global.
2002-10-13 17:13:25 +00:00
jjgarcia
0912497863 Simplify use of local variables, eliminating the redundant symbol from the
bytecodes.
2002-10-13 17:05:40 +00:00
jjgarcia
cd6d1e61ef Simplify the bytecodes a bit and add comments describing their use. 2002-10-13 16:57:24 +00:00
jjgarcia
c9b91f9618 Minimal patches for C++ compatibility 2001-12-20 09:17:51 +00:00