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