Commit graph

23 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
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
e92f8c418f Added a 'machine' object that represents the features of a cross compilation target in the compiler. Inline forms now are created with one such machine on mind, and recreated if the machine changes. 2013-06-02 22:49:54 +02:00
Juan Jose Garcia Ripoll
c7016018aa *,+,-,/ now convert their operands to the largest C number type that fits the arguments and the output 2013-01-13 23:31:00 +01:00
Juan Jose Garcia Ripoll
3b4ed64ded (EXPT FIXNUM INTEGER) was inferred to be of type FIXNUM. 2012-07-14 23:22:25 +02:00
Juan Jose Garcia Ripoll
64a9168434 CHARACTERP, BASE_CHAR_P, BASE_CHAR_CODE_P, CODE_CHAR, CHAR_CODE, REAL_TYPE, IMMEDIATE, IMMEDIATE_TAG, FIXNUM_TAG, FIXNUM_MINUSP, FIXNUM_PLUSP, FIXNUMP and fix get the ecl_ prefix 2012-06-06 11:19:55 +02:00
Juan Jose Garcia Ripoll
aaf55b6a46 Fix for type propagation of EXPT 2012-02-06 21:18:52 +01:00
Juan Jose Garcia Ripoll
98c08821c6 Simplify the decision on when to inline -/+/*... fixing a problem with single-argument negation 2010-10-11 11:20:54 +02:00
Juan Jose Garcia Ripoll
e83bd3dfb4 Unboxed type SHORT-FLOAT removed from the core. 2010-08-17 19:47:14 +02:00
Juan Jose Garcia Ripoll
77518ea144 Remove debug statement 2010-05-28 21:36:16 +02:00
Juan Jose Garcia Ripoll
31b8b8f73a Implemented type inliners for arithmetic operations 2010-05-28 15:49:36 +02:00
Juan Jose Garcia Ripoll
6a91d3b45a Refactored code so that it is shared by cmp and new-cmp:
* Use the new proclamations/sysfun.lsp files from the new compiler.
* We split src/cmp/cmpdefs.lsp into cmpdefs, cmppackage, cmptypes and cmpglobals
* Split cmpform.lsp out of cmpmac.lsp
* Merged in {cmp,new-cmp}/cmpc-wt.lsp some of the cmpmac wt routines
* Use functions instead of macros for the WT-* operations
* Split out from *cmp/cmpenv.lsp a file cmppolicy.lsp
* A single file, cmpenv-api.lsp for the manipulation of environments.
* The type comparison functions go into cmptype-arith.lsp and are cached.
* The code that propagates types in function calls goes into cmptype-prop.lsp.
* The remainings of cmpenv go into cmpenv-{declare,proclaim,declaim}.

Associated fixes:
* Fixed typo and wrong proclamation for SI:GET-SYSPROP.
* Fixed typo in SIMPLIFY-ARITHMETIC.
* Explicitely set the debug level when building ECL
* All declarations are stored in the compiler environment.
* Each function and form stores the compilation environment.
* Declaration POLICY-DEBUG-IHS-FRAME is acts only on the function environment.
* Make the definition if ihs_env only happen when it is used.
* Eliminated *notinline*, *inline-functions*  and *function-declarations*
* Slightly more efficient creation of accessors in kernel.lsp
* Remove the proxy C2DECL-BODY
* Fix the order of declarations in SI:PROCESS-DECLARATIONS
* Reimplemented C1BODY using SI:PROCESS-DECLARATIONS
* DECLAIM's proclamation do not propagate beyond the compiled file.
2010-05-05 17:36:19 +02:00
Juan Jose Garcia Ripoll
55eeb0e955 Remove debug statement 2009-07-13 23:48:52 +02:00
Juan Jose Garcia Ripoll
c8118dd93c The utility functions for ENSURE-*-TYPE returned the argument type in the third and not in the second value (cmpnum.lsp) 2009-07-13 11:48:49 +02:00
Juan Jose Garcia Ripoll
f80bb43e28 In the type propagator for ISQRT, remove the circular reader forms. 2009-07-12 23:52:59 +02:00
Juan Jose Garcia Ripoll
f5c03a9638 Fixed a couple of typos in the new type propagations for special functions 2009-07-12 23:46:45 +02:00
Juan Jose Garcia Ripoll
88498d35f5 Type propagators now work with type names, not with C1FORMS (More general and will allow caching in the future). Implemented type propagators for COS, SIN, TAN, COSH, SINH, TANH, ATAN, SQRT, ABS, ISQRT, LOG, EXP, EXPT. 2009-07-12 20:16:23 +02:00
Juan Jose Garcia Ripoll
03afa98d41 Since not always the compiler macros are applied, we are forced to have type propagators that handle the 1, 2 and more argument cases for +, *, / and -. 2009-07-08 23:03:13 +02:00
Juan Jose Garcia Ripoll
6f9d335302 In cmpnum.lsp, MAXIMUM-NUMBER-TYPE outputs the minimum, not the maximum type. 2009-07-08 11:11:46 +02:00
Juan Jose Garcia Ripoll
ad6a35f9e3 Implemented type propagation for *, +, - and / 2009-07-08 10:48:30 +02:00
Samium Gromoff
0a841482dc SIMPLE-CONDITION's initarg is called :FORMAT-ARGUMENTS 2009-04-17 14:52:52 +02:00
jgarcia
a59f90871a Emacs modelines for better editing 2008-02-02 19:14:05 +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