Juan Jose Garcia Ripoll
86c211a6a1
Optimize ecl-inl.h for small cons and use of ecl_unlikely. New macros ECL_CONSP, ECL_LISTP, ECL_ATOM, ECL_SYMBOLP
2010-02-27 09:47:05 +01:00
Juan Jose Garcia Ripoll
6e4d572bfb
Tag many error checks using ecl_unlikely
2010-02-26 10:43:37 +01:00
Juan Jose Garcia Ripoll
2c2c329b09
Replaced FEtype_error_symbol with FEwrong_type_*_arg
2010-02-25 16:46:40 +01:00
Juan Jose Garcia Ripoll
f0a022acdf
Trivial typo in ecl_boundp().
2010-02-21 22:45:42 +01:00
Juan Jose Garcia Ripoll
ec9727f9f5
Safer inline expansion for BOUNDP
2010-02-20 22:04:50 +01:00
Juan Jose Garcia Ripoll
e8b2573355
FDEFINITION/SYMBOL-FUNCTION cause an access violation instead of an undefined function message when acting on NIL
2009-11-20 10:25:01 +01:00
Juan Jose Garcia Ripoll
77cde5c2f8
Several fixes for various compiler warnings.
2009-06-07 00:02:49 +02: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
cb9939d6c0
Separate lisp objects for functions with fixed and variable # arguments
2008-06-16 23:09:21 +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
jgarcia
8800b254f5
Committed the changes to implement small conses
2008-04-30 14:24:20 +00:00
jgarcia
5ef5d32e74
Enforce indent and mode conditions on files
2008-01-26 10:30:41 +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
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
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
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
jjgarcia
c882e22bdc
Speed improvements in the subtypep implementation, plus additional type declarations to enforce inlining of CDR/CAR
2005-07-25 09:08:06 +00:00
jjgarcia
9302a9e175
Various ANSI compatibility fixes
2005-05-26 19:17:53 +00:00
jjgarcia
e6632b5ab5
Reorder the fields in the symbol structure, so that cons.cdr overlaps with symbol.gfdef, and now we are allowed to set property lists of NIL.
2005-05-12 15:45:22 +00:00
jjgarcia
24688d57f8
Teach the compiler how to produce C functions with a fixed number of arguments when the corresponding lisp function does not have any &optional, &rest, &key. Teach it also how to produce slimmer code for MULTIPLE-VALUE-SETQ/BIND. The type of a C1FORM can now be a (VALUES ...) expression, the first value being obtained with C1FORM-PRIMARY-TYPE.
2004-05-17 07:32:52 +00:00
jjgarcia
860dbd69ec
Fixes due to type sizes, updates of the old garbage collector and the terrible bug with hash tables merged into main trunk
2004-02-29 15:47:01 +00:00
jjgarcia
71f921ed39
Remove some warnings from GCC
2004-01-24 17:00:24 +00:00
jjgarcia
e5072a82d9
Use user-supplied DPP to build the C files. machines.h is no longer required.
2003-07-23 13:09:37 +00:00
jjgarcia
c2aa136143
Various minor fixes, and an important set of changes to teach the compiler
...
and the interpreter to understand (SETF fname) function names, and to handle
them without creating auxiliary symbols.
2003-04-28 15:55:22 +00:00
jjgarcia
f20736084b
Add more symbols to src/c/symbols_list.h, and resolve associated conflicts.
2003-04-28 09:25:58 +00:00
jjgarcia
5f6f65b407
Bunch of fixes inspired by the ANSI test suite of GCL.
2003-03-10 09:10:13 +00:00
jjgarcia
b0ce08d0ea
Changes towards 0.7b comprise naming and calling conventions. See CHANGELOG.
2002-11-04 14:08:24 +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
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