Juan Jose Garcia Ripoll
3f3cebb235
Add index bound checks to array-row-major-index
2010-05-10 16:00:50 +02:00
Juan Jose Garcia Ripoll
4049bf6392
Simplify ASSERT-TYPE-IF-KNOWN by removing all type filters
2010-05-10 16:00:25 +02:00
Juan Jose Garcia Ripoll
b129433812
Added SATISFIES to the kind of types that TYPE can inline
2010-05-10 16:00:07 +02:00
Juan Jose Garcia Ripoll
b73468d1ef
Provide unsafe expansion for CAR/CDR when applied on conses
2010-05-10 15:59:30 +02:00
Juan Jose Garcia Ripoll
8525362b33
Whenever we check the argument types, also check the argument number
2010-05-09 23:54:01 +02:00
Juan Jose Garcia Ripoll
bb29cc908b
Changed the way toplevel macros are registered because we have no way to let MACROEXPAND know about the compiler *GLOBAL-MACROS* table
2010-05-09 23:05:13 +02:00
Juan Jose Garcia Ripoll
17790c4770
Remove the function TYPE-FILTER and deal with the whole set of Common Lisp types in the compiler.
2010-05-09 22:20:47 +02:00
Juan Jose Garcia Ripoll
64d4bb38ad
Add declarations to arraylib.lsp
2010-05-09 22:19:42 +02:00
Juan Jose Garcia Ripoll
1d4f8ac75d
Define a new built-in type ANSI-STREAM in the EXT package and used it in predlib, builtin.lsp and in the Gray streams package
2010-05-09 22:19:22 +02:00
Juan Jose Garcia Ripoll
a8211519df
The optimizers in cmparray distinguish between the policies for type assertions and and those for index bound checking
2010-05-09 20:28:54 +02:00
Juan Jose Garcia Ripoll
d92ba5052d
New policy for emitting type assertions
2010-05-09 20:28:24 +02:00
Juan Jose Garcia Ripoll
6ae9d38bdb
New type, ARRAY-INDEX, exported from EXT.
2010-05-09 20:28:01 +02:00
Juan Jose Garcia Ripoll
9e46f3d357
Introduce policy aliases, interned some declaration names in EXT and replaced some of those names with more meaningful ones.
2010-05-09 19:41:04 +02:00
Juan Jose Garcia Ripoll
800ac7b46c
Remove redundant file new-cmp/cmptype.lsp
2010-05-09 19:15:24 +02:00
Juan Jose Garcia Ripoll
730f37e276
Lower safety levels of inner code in VECTOR-PUSH
2010-05-09 16:17:26 +02:00
Juan Jose Garcia Ripoll
8a72a6fb6e
Do not filter types in declarations / proclamations
2010-05-09 16:17:19 +02:00
Juan Jose Garcia Ripoll
c79c014e31
Export declarations into the EXT package and remove debug statements.
2010-05-09 16:16:31 +02:00
Juan Jose Garcia Ripoll
d6f84775fb
Optimization and policy levels are now bitmaps
2010-05-09 15:50:22 +02:00
Juan Jose Garcia Ripoll
b04a647c2e
Replace cmp-env-optimization with compiler policies.
2010-05-09 09:59:53 +02:00
Juan Jose Garcia Ripoll
a701663b62
Compiler policies are now defined as flags
2010-05-08 13:31:40 +02:00
Juan Jose Garcia Ripoll
fb55d5151d
The special form C-INLINE was destructively manipulating its arguments.
2010-05-08 00:35:18 +02:00
Juan Jose Garcia Ripoll
d8abf4d4b7
Use hash tables to store representation type properties.
2010-05-08 00:31:53 +02:00
Juan Jose Garcia Ripoll
f6893139ff
Increase the safety settings of slot accessors so that they check the number of arguments they receive.
2010-05-07 23:53:19 +02:00
Juan Jose Garcia Ripoll
1d7ef44ed1
Optimize some internal functions with zero safety.
2010-05-07 23:52:53 +02:00
Juan Jose Garcia Ripoll
2495ae0b8e
Toplevel DEFMACRO forms are processed differently and stored by the compiler in a local table. These definitions do not propagate beyond the currently compiled file.
2010-05-07 22:20:14 +02:00
Juan Jose Garcia Ripoll
e02ccb43bc
Note the change by which *CMP-ENV* stores optimizations
2010-05-07 22:15:14 +02:00
Juan Jose Garcia Ripoll
fa57208c28
Compile PPRINT with low safety settings, except for the exported functions.
2010-05-07 22:13:55 +02:00
Juan Jose Garcia Ripoll
4ebd664c92
DECLARE was destructively modifying the compiler environment
2010-05-07 22:12:32 +02:00
Juan Jose Garcia Ripoll
b48bc21580
New function to create the root environment for each toplevel form
2010-05-07 21:18:50 +02:00
Juan Jose Garcia Ripoll
4d1d068edf
With the new inline behavior we can make ASSERT-TYPE-IF-KNOWN more efficient by use of ecl_unlikely().
2010-05-07 17:20:49 +02:00
Juan Jose Garcia Ripoll
b8ce2506ed
When inlining to save intermediate computations, the temporary variables are created with a C type that matches the value, not the expected destination of that value.
2010-05-07 17:09:51 +02:00
Juan Jose Garcia Ripoll
5dcb1f6ebc
New type assertion macros for lambdas, reused by both compilers.
2010-05-07 16:02:42 +02:00
Juan Jose Garcia Ripoll
73db1aacd9
Add a couple more uses of ecl_unlikely and remove a duplicate definition of cs_check in ecl-cmp
2010-05-07 13:11:35 +02:00
Juan Jose Garcia Ripoll
154df113be
Removed file new-cmp/cmpopt.lsp whic is now equal to that in cmp/
2010-05-06 15:45:02 +02:00
Juan Jose Garcia Ripoll
1a5444eb39
Removed debug statements from cmparray.lsp and fixed typo in ARRAY-DIMENSION-ACCESSOR
2010-05-06 08:41:19 +02:00
Juan Jose Garcia Ripoll
1b808f2290
Compiler macros that open code AREF/ASET using cheap checks written in C
2010-05-05 23:52:25 +02:00
Juan Jose Garcia Ripoll
cf60cb2181
New function for testing whether a variable was declared special
2010-05-05 23:42:21 +02:00
Juan Jose Garcia Ripoll
c8c36d32b9
DECLAIM + SPECIAL did not work because ECL was not looking for special declarations in the compiler environment.
2010-05-05 23:27:43 +02:00
Juan Jose Garcia Ripoll
557474044f
FEwrong_dimensions() did not invoke cl_make_list() with enough arguments.
2010-05-05 23:01:12 +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
77afbfd6da
Slightly more compact format for proclamations / sysfun
2010-04-30 23:44:17 +02:00
Juan Jose Garcia Ripoll
840140d447
Remove from sysfun.lsp types which are already defined in proclamations.lsp.
2010-04-30 17:25:23 +02:00
Juan Jose Garcia Ripoll
8007ff56b4
The inline declarations were not properly inserted in the code.
2010-04-30 15:56:04 +02:00
Juan Jose Garcia Ripoll
8b7c9a7580
Merge sysfun.lsp and proclamations.lsp into the compiled file cmp.fas
2010-04-30 14:57:16 +02:00
Juan Jose Garcia Ripoll
89db75f763
MAKE-STRING-INPUT-STREAM accepted as start NIL, which is not valid.
2010-04-30 14:41:17 +02:00
Juan Jose Garcia Ripoll
3f0cda1ee3
Undo the previous change to SUBTYPEP and eliminate recursive types from proclamations.lsp
2010-04-30 14:41:17 +02:00
Juan Jose Garcia Ripoll
2f9e993603
Rewrite SUBTYPEP so that it ignores recursive type declarations using CONS
2010-04-30 14:41:17 +02:00
Juan Jose Garcia Ripoll
49ed81bbf3
Remove unused statement.
2010-04-30 14:41:17 +02:00
Juan Jose Garcia Ripoll
e8cecf9935
Declarations for all Common Lisp functions.
...
Split out a new file, proclamations.lsp, with the declarations oof the types of functions in the ANSI specification and in ECL's extensions.
2010-04-30 14:40:36 +02:00
Juan Jose Garcia Ripoll
ed1bdcb0fe
Use C code to guess the alignment of different types.
2010-04-27 13:05:49 +02:00