Commit graph

1365 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
6ffd74aa05 Slight simplification in the detection of alien declarations 2013-06-22 20:41:28 +02:00
Juan Jose Garcia Ripoll
914ce253d1 FSET only can work specially when it is a toplevel form 2013-06-19 22:13:48 +02:00
Juan Jose Garcia Ripoll
5b82b34f5c Fixed order of loading files 2013-06-08 22:24:14 -07:00
Juan Jose Garcia Ripoll
63640b0a79 Added newlines to the C templates. 2013-06-08 22:04:06 -07: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
2798c5caea Remove unused lines. 2013-06-02 10:06:42 +02:00
Juan Jose Garcia Ripoll
5bbb85fd7f When type propagation errors happen, show the function context. 2013-05-26 11:09:53 +02:00
Juan Jose Garcia Ripoll
3662e43229 The value of *env-lvl* was not saved in cmptop.lsp 2013-05-25 00:59:18 +02:00
Juan Jose Garcia Ripoll
2bbc16ac33 Fixed different uses of *volatile*, which indented wrong or placed it in the wrong place 2013-05-23 13:47:38 +02:00
Juan Jose Garcia Ripoll
d1030a643c Improve slightly the indentation of the C code generated by FLET, removing spurious variable assignments. 2013-05-23 12:39:55 +02:00
Juan Jose Garcia Ripoll
92054ae38c The declaration of CLV variables had too many newlines. 2013-05-23 11:16:49 +02:00
Juan Jose Garcia Ripoll
d90e3c0e90 The definition of env0 missed a newline character before it. 2013-05-23 11:13:25 +02:00
Juan Jose Garcia Ripoll
94e04b5484 Fix the order of statements in the compiler macro expansion of DPB and LDB. 2013-04-17 23:45:55 +02:00
Juan Jose Garcia Ripoll
3c0a911ebf HASH-TABLE-COUNT now updates the list of live entries in weak hash tables 2013-04-16 23:11:01 +02:00
Juan Jose Garcia Ripoll
e0e9eb731e Don't create extra strings on platforms without limitation on the string size. 2013-04-14 22:27:21 +02:00
Juan Jose Garcia Ripoll
c603e57ef3 In *.data we have to add a final newline character to ensure that the compiler does not complain. 2013-04-14 21:47:17 +02:00
Juan Jose Garcia Ripoll
03a38affeb The length of the string that stores compiled data was off by 1 character 2013-04-13 22:59:18 +02:00
Juan Jose Garcia Ripoll
fff744af79 Removed empty line from *.data 2013-04-13 00:15:40 +02:00
Juan Jose Garcia Ripoll
b47b1869c6 New way of creating lisp data, using an array of string streams 2013-04-07 13:50:07 +02:00
Juan Jose Garcia Ripoll
51d0dcaaa3 Fixed type coercion in system() 2013-04-02 23:11:38 +02:00
Juan Jose Garcia Ripoll
8fddfe4076 c::emit-inlined-values did not contemplate the empty values form (values) 2013-03-30 22:50:40 +01:00
Juan Jose Garcia Ripoll
5e177e07de cl_fixnum/cl_index lose priority vs long/unsigned long when representing integers. This avoids confusion when the argument fits in cl_fixnum but is a bignum. 2013-01-13 23:40:23 +01: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
89a8201b0b New functions RATIOP, {SINGLE,SHORT,DOUBLE,LONG}-FLOAT-P help avoid consing in TYPEP 2013-01-12 21:15:35 +01:00
Juan Jose Garcia Ripoll
e0cfa8028d Remove a statement that prevented TYPEP from being optimized for SATISFIES and other complicated types (S. Boukarev) 2013-01-12 19:49:10 +01:00
Juan Jose Garcia Ripoll
54372deb73 CONSTANT-FORM-VALUE and CONSTANTP-INNER cannot be referenced as C functions because they must change, depending on the compiler 2013-01-11 23:52:18 +01:00
Juan Jose Garcia Ripoll
86a90f5ef9 Restore a WITH-CLEAN-SYMBOLS wapping the expansion of an array bounds check. 2013-01-11 23:50:37 +01:00
Juan Jose Garcia Ripoll
d1ee053ccd Fix further uses of CONSTANTP+EVAL, replacing them with CONSTANT-FORM-VALUE and using the environment. 2013-01-11 22:55:49 +01:00
Juan Jose Garcia Ripoll
271df28de1 CONSTANT-VALUE-FORM and CONSTANTP-INNER's environment value is now optional 2013-01-11 22:53:53 +01:00
Juan Jose Garcia Ripoll
4f00e74ca0 No optional type check generated for constant values. 2013-01-10 10:03:33 +01:00
Juan Jose Garcia Ripoll
3da57e381a In the compiler LET transforms constant variables (tagged by :READ-ONLY) that take constant forms into SYMBOL-MACROLET 2013-01-10 10:03:33 +01:00
Juan Jose Garcia Ripoll
faa39d2f50 CONSTANT-EXPRESSION-P now checks whether the 1-form is pure before checking the arguments. 2013-01-10 00:54:08 +01:00
Juan Jose Garcia Ripoll
67c76f0ad4 CONSTANT-VALUE-P and friends now use the (compiler) environment. 2013-01-10 00:49:32 +01:00
Juan Jose Garcia Ripoll
f1fede5264 C1COMPILER-TYPECASE now handles constant values as well as variables. 2013-01-10 00:48:58 +01:00
Juan Jose Garcia Ripoll
5cad0b240c Slightly better setf-expander for LDB and MASK-FIELD in cmpopt-bits.lsp 2013-01-10 00:22:06 +01:00
Juan Jose Garcia Ripoll
2dc822c93a Added optimizers for DPB and DEPOSIT-FIELD, and fixed WITH-LET*-TYPE-CHECK. 2013-01-09 16:08:31 +01:00
Juan Jose Garcia Ripoll
20ac97795e Simplified the inliners for ldb, ldb-test and mask-field introducing a new macro that introduces the type checks and optimizes out constant values. 2013-01-09 15:53:16 +01:00
Juan Jose Garcia Ripoll
40ddf4d58d Compiler macro for MASK-FIELD 2013-01-09 15:00:46 +01:00
Juan Jose Garcia Ripoll
0eb963ec39 Inline (LDB-TEST (BYTE ...) ...) 2013-01-09 11:04:10 +01:00
Juan Jose Garcia Ripoll
be75d35f88 LDB can be inlined whenever the argument begins with (BYTE ...) 2013-01-09 10:55:42 +01:00
Juan Jose Garcia Ripoll
4b2e293a48 Added optimizer for LDB-TEST 2013-01-09 00:40:38 +01:00
Juan Jose Garcia Ripoll
b284b74e40 (LDB (BYTE ...) ...) does not cons a BYTE object, even if the arguments of BYTE have unknown types. 2013-01-09 00:38:34 +01:00
Juan Jose Garcia Ripoll
297c0bc078 In src/cmp/cmptype.lsp, the optional type check is omitted when the argument is a constant value of the right type. 2013-01-09 00:28:03 +01:00
Juan Jose Garcia Ripoll
fe85aebbc9 Removed the "-w" option from compiler-cc so that it works with clang. 2013-01-09 00:00:53 +01:00
Juan Jose Garcia Ripoll
a9cb6a48c5 Fixed typo in the code that compiles a coercion from a Lisp integer to an unsigned long (M. Cox) 2013-01-08 23:58:06 +01:00
Juan Jose Garcia Ripoll
0e64774fbe Added a declaration to name LAMBDA forms even when we do not use EXT:LAMBDA-BLOCK 2012-12-21 00:12:53 +01:00
Juan Jose Garcia Ripoll
39bc148181 Added more function references to cl_symbols. 2012-12-20 09:40:04 +01:00
Juan Jose Garcia Ripoll
d57393f38e Add a few more functions to cl_core. 2012-12-20 00:09:52 +01:00
Juan Jose Garcia Ripoll
b2889a6627 STANDARD-INSTANCE-GET is now used to provide a SETF form for STANDARD-INSTANCE-ACCESS 2012-12-19 23:05:24 +01:00
Juan Jose Garcia Ripoll
0f2688147d Merged STANDARD-INSTANCE-GET and STANDARD-INSTANCE-ACCESS. 2012-12-19 22:44:01 +01:00