Daniel Kochmański
a04b6ff8b8
cmp: mapcar: evaluate function only once
...
When function is a closure, all lexical environment were reinitialized
on each function call, because it was expanded multiple times. Do it
only once and use result in funcall. Fixes #17 .
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-16 07:52:52 +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
Daniel Kochmański
ff865d1c59
cmplet: Remove invalid declaration. Fixes #28 .
2015-04-07 21:34:01 +02:00
Daniel Kochmański
7229cfefc9
compilator: fixes issue #3 (regression on package :lapack).
...
cmptype-arith.lsp: problem introduced in commit
c0b23555c6 which added empty &optional
clause and &allow-other-keys capability to typespec for values.
Problem was, that multiple &optional keywords in typespec it
considered error, while
'(VALUES &OPTIONAL T &OPTIONAL T)
should return as optional part, list (T &optional T) - even if it
looks weird.
2015-03-05 23:45:22 +01:00
Daniel Kochmański
0d97f64c60
cmpc-machine.lsp: --with-sse=yes build failure fix. Closes #301 .
...
Typo in rewriting cmpc-machine in order to enable cross-compilation for ecl.
Related ticket: https://sourceforge.net/p/ecls/bugs/301/
2015-02-26 15:48:58 +01:00
Stas Boukarev
3f0ce7f7d4
Fix VALUES declaration processing.
...
A change to C::SPLIT-VALUES-TYPE got the order reversed.
Fixes #275 .
2014-03-02 21:45:45 +01:00
Stas Boukarev
e2e53dc679
Fix FTYPE declaration to X from being applied to (SETF X).
...
C1LAMBDA-EXPR used the block-name to get declarations, but BLOCK name
is a symbol, and for a function named (SETF X) the block would have
the name X, resulting in wrong declarations.
Fixes #262 .
2014-03-02 21:36:56 +01:00
Juanjo Garcia-Ripoll
c8a4d98da6
(INTEGER *) and other type names made of lists are now allowed as declaration names.
2013-10-29 22:25:42 +01:00
Juanjo Garcia-Ripoll
db2925daf6
Fixed the routines that deal with VALUES types, extracting primary types, splitting them, etc
2013-10-10 23:45:37 +02:00
Juanjo Garcia-Ripoll
c0b23555c6
SPLIT-VALUES-TYPE and VALUES-TYPE-PRIMARY-TYPE redesigned to work with &allow-other-keys and empty &optional
2013-10-10 22:47:56 +02:00
Juanjo Garcia-Ripoll
e7daee08e8
Fixed wrong proclamation for ensure-directories-exist.
2013-10-09 21:41:57 +02:00
Juan Jose Garcia Ripoll
44c86e083c
Implemented FFI:C-PROGN
2013-07-03 17:08:59 +02:00
Juan Jose Garcia Ripoll
c503bfa99b
APPLY should not be inlined when using frame arguments.
2013-07-03 16:58:27 +02:00
Juan Jose Garcia Ripoll
a40c1907cf
Added the special form FFI:C-PROGN
2013-06-27 23:09:37 +02:00
Juan Jose Garcia Ripoll
08594e60a9
Clean-up COERCE-LOCS
2013-06-23 00:15:09 +02:00
Juan Jose Garcia Ripoll
a84cf0df47
Introduced C-type declarations in the compiler.
2013-06-22 21:55:51 +02:00
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