Commit graph

23 commits

Author SHA1 Message Date
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
jjgarcia
b979ad8b0b Changes in the names of macros related to fixnums, characters and arrays. 2001-10-11 17:44:57 +00:00
jjgarcia
9c09789e75 The interpreter, the printer and the compiler now share a common stack.
This stack is also used to build the Invocation History records, which keep
track of which functions are called and which are their local environments.
With these changes, the debugger now works to the extend that it inspecting
these Invocation History Records with :backtrace, :up, :down, :variables,
now output the rights values.
2001-09-05 18:09:20 +00:00
jjgarcia
0dc4df6002 Add a name mangler to "dpp" so that it translates symbol names as
@'si:symbol-name' @'other-symbol*' into the appropiate C name. All
symbol names and function names have been rewritten using this convention.
2001-07-02 17:11:28 +00:00
jjgarcia
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00