Commit graph

44 commits

Author SHA1 Message Date
Matthew Mondor
8f07cd58d8 The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
2015-09-03 07:35:47 -04:00
Daniel Kochmański
7a29be4337 CLOS: remove dead code and conditionals for non-clos builds
Builds without CLOS weren't possible for long time, yet a lot of dead
code for non-clos builds was spread across sources. This commit
removes all ifdefs and dead blocks from codebase.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-01 16:56:17 +02:00
Daniel Kochmański
4d19a27424 cosmetic: untabify
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-06-21 14:38:20 +02:00
Juan Jose Garcia Ripoll
e54d9a6173 Rename type_of -> ecl_t_of 2012-07-05 23:07:34 +02:00
Juan Jose Garcia Ripoll
3281047165 Renamed CLASS_* and moved to legacy.h 2012-06-30 23:21:06 +02:00
Juan Jose Garcia Ripoll
825fc8cbd3 Cnil and Ct are now part of legacy 2012-06-30 23:01:40 +02:00
Juan Jose Garcia Ripoll
288d5e8ce6 Force LISTP,CONSP,ATOM and SYMBOLP into legacy.h 2012-06-30 21:59:10 +02:00
Juan Jose Garcia Ripoll
52512c15a4 Rename the stp_* and aet_* enumeration names with the ecl_ prefix 2012-06-08 00:12:48 +02:00
Juan Jose Garcia Ripoll
036cb55928 Fixes to remove warnings about unused variables. Replaced some uses of @(return) with ecl_return*() 2012-04-10 23:20:40 +02:00
Juan Jose Garcia Ripoll
0423bd23a3 Fixed a typo in ecl_remf_setf_definition. Type-check also the SETF arguments to FBOUNDP. 2011-12-16 22:12:28 +01:00
Juan Jose Garcia Ripoll
17ab9cecf0 Keep a SETF location object in the compiled code, to speed up the lookup of #'(SETF fname) functions. Also, store a closure in that object for the cases in which we fmakunbound it. 2011-12-14 00:24:09 +01:00
Juan Jose Garcia Ripoll
b72823aeab SETF functions are now stored in a separate hash table. 2011-12-13 20:53:44 +01:00
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