Commit graph

54 commits

Author SHA1 Message Date
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
jjgarcia
851cd03941 The project name goes back to ECL. Therefore feature #+ECL returns and the
program and libraries are named ecl*. Finally the routine sys::build-ecls
has been renamed sys::build-program.
2001-11-21 08:07:30 +00:00
jjgarcia
9b4bd625f4 +The compiler produced wrong code for RETURN-FROM forms inside an UNWIND-PROTECT.
+Deftype BIT-VECTOR would not expand to a vector type.
+Each compiled file has an entry point whose name is either
 init_CODE() or another name based on the name of the source file.
 The algorithm for computing these names has been slightly changed
 so that the entry points of ECLS's own library do not conflict with
 user defined entry points.
+A LET/LET* form in which the initializers for a variable have not
 the expected type produce a warning, but the code is accepted. For
 instance (LET (V) (DECLARE (TYPE FIXNUM V)) (SETQ V 1)) now
 compiles.
+(SETF name), where name is a symbol, is now a valid function name in all
 contexts. It is accepted by DEFUN, FUNCTION, FBOUNDP, FMAKUNBOUND, etc,
 and it can be the on the function position in any form.
+New specialized arrays for (UNSIGNED-BYTE 8) and (SIGNED-BYTE 8).
2001-11-17 11:02:12 +00:00