Juan Jose Garcia Ripoll
a74df0c9a8
Start the compiler in the directory that ECL is using as 'current', which is *default-pathname-defaults*
2010-12-24 13:31:36 +01:00
Juan Jose Garcia Ripoll
9db8f32b75
In the compiler, replace all uses of SYSTEM with RUN-PROGRAM. For this we need to save the original input/output/error channels from the program.
2010-12-23 23:34:22 +01:00
Juan Jose Garcia Ripoll
ba76dd88fd
safe-mkstemp, in Windows, added two extensions to the temporary file name.
2010-12-18 00:32:48 +01:00
Juan Jose Garcia Ripoll
9eed3317e0
In Windows we cannot use enough-namestring in the compiler because it breaks down when using paths such as c:/docume~1/juanjo/locals~1/temp/foo.tmp. enough-namestring would return /docume~1/juanjo/locals~1/temp/foo.tmp which is not understood by Windows.
2010-12-18 00:31:59 +01:00
Juan Jose Garcia Ripoll
f1b60b9de9
Update ECL's old implementation of FORMAT to make it work (J. Jaakkola)
2010-11-21 21:54:10 +01:00
Juan Jose Garcia Ripoll
c3d234a149
Changed cmpwt.lsp to match the new ecl_def_ct* macros
2010-11-06 15:01:25 +01:00
Juan Jose Garcia Ripoll
e96baaf6bb
Fixed get-setf-environment proclamation (J. Jaakkola)
2010-11-04 23:48:39 +01:00
Juan Jose Garcia Ripoll
491a8fb511
Proclaim socket functions only when used (J Jaakkola)
2010-11-04 23:42:20 +01:00
Juan Jose Garcia Ripoll
e466268348
In cmpct.lsp, 0.0l0 was being compiled as -0.0l0
2010-11-01 19:31:39 +01:00
Juan Jose Garcia Ripoll
e27974cf76
Unknown FUNCALL forms must be tagged as side-effect full
2010-10-23 00:53:35 +02:00
Juan Jose Garcia Ripoll
026623824b
Removed a bug related to replaced values in LET forms.
2010-10-19 23:58:07 +02:00
Juan Jose Garcia Ripoll
166bbfd8f1
Remove / disable the code similarity routines. They simply do not work.
2010-10-19 23:02:14 +02:00
Juan Jose Garcia Ripoll
43dd4b50fa
In C-INLINE forms, ## is replaced with a single hash # character.
2010-10-17 16:49:45 +02: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
e1d0e28890
Fixed typo in expansion of AREF for (SIGNED-BYTE 64)
2010-10-10 22:55:28 +02:00
Juan Jose Garcia Ripoll
7fae69de9d
Include the current directory in the list of search paths for the C compiler
2010-10-06 09:48:35 +02:00
Juan Jose Garcia Ripoll
6fd15dac1b
The names of the programs ranlib and ar are no longer hardcoded in ECL (Gabriel Dos Reis). Names of C files, headers and other files are output in brief form using enough-namestring.
2010-10-04 21:49:46 +02:00
Alexander Gavrilov
12fb30c0a9
Make unboxed SSE pack variables visible in the debugger.
...
Add location type tags and make the compiler use them.
2010-10-03 23:45:02 +02:00
Alexander Gavrilov
03049ee7e2
Make boxed SSE packs untyped for all purposes but printing.
...
Now the following rules hold:
- (type-of pack) = SSE-PACK
- (typep pack '*-SSE-PACK) = T
The compiler is tweaked to unbox unidentified packs as
__m128i (integer), assuming that a cast would be inserted
later if that is not what was needed.
2010-10-03 23:43:52 +02:00
Alexander Gavrilov
8f835233d6
Enable automatic coercion of SSE subtypes via _mm_cast* intrinsics.
...
Assume that any sse-pack subtype matches any other one in inline
expansion matcher, and insert casts when required.
This uses intrinsics that are present only in the recent versions
of compilers, so add fallback inline definitions to a header file.
2010-10-03 23:42:57 +02:00
Alexander Gavrilov
2f4723012e
Open-code array-row-major-index too if enabled for aref/aset.
...
This should make manually expanded index computations faster.
2010-10-03 23:41:33 +02:00
Juan Jose Garcia Ripoll
c2d8e70d1b
In LET/LET* forms, a local binding did not shadow a special variable binding.
...
> (defun test ()
(let ((a 5))
(declare (special a))
(flet ((x () a))
(let ((a 10))
(x)))))
> (test)
5
> (compile 'test)
> (test)
10
2010-09-28 23:42:15 +02:00
Juan Jose Garcia Ripoll
33a9087056
Optimization policies were overwritten by its own code, not being available in a fresh new image.
2010-09-27 10:24:48 +02:00
Juan Jose Garcia Ripoll
145e0e6ec2
The C inliner always inlined forms whose return type matched exactly, even when POLICY-ASSUME-RIGHT-TYPE was false
2010-09-27 10:24:04 +02:00
Juan Jose Garcia Ripoll
f53e1fc768
After recompiling cmppolicy the declaration specifiers were lost.
2010-09-22 00:03:23 +02:00
Juan Jose Garcia Ripoll
09ae1f43c0
Fixed type warning in macroexpansion of sequece iterators
2010-09-21 09:25:26 +02:00
Juan Jose Garcia Ripoll
c2661518a9
The compiler no longer interferes with the debugger hooks.
2010-09-21 09:12:52 +02:00
Juan Jose Garcia Ripoll
9904da236e
When computing the init name of a compiled module, use the physical namestring
2010-09-12 09:57:48 +02:00
Juan Jose Garcia Ripoll
4518b18892
Rewrite var-changed-in... because it was missing special variables without explicit references
2010-08-22 01:07:32 +02:00
Alexander Gavrilov
dcf08cd6c0
Warn about automatic boxing of SSE values in the compiler.
...
Since the whole point of SSE is high performance, boxing
defeats the purpose and should be immediately flagged.
Also enable marking functions so that the compiler warns
if they are not inlined.
2010-08-20 20:29:03 +02:00
Alexander Gavrilov
5088dd10b5
Implement compilation of SSE packed vector constants.
...
The constants are dumped as static C constants, with
data represented as integer byte values. This should
provide optimal performance and exact equality.
2010-08-20 20:29:03 +02:00
Alexander Gavrilov
c348b6f948
Implement boxing and unboxing of SSE values in the compiler.
...
This makes the SSE types marginally usable via c-inline:
(defun foo (xx yy)
(let ((sum (ffi:c-inline
(xx yy) (:float-sse-pack :float-sse-pack)
:float-sse-pack
"_mm_add_ps(#0,#1)" :one-liner t)))
(ffi:c-inline (sum) (:float-sse-pack) :float-sse-pack
"_mm_mul_ps(#0,_mm_set1_ps(3.0))" :one-liner t)))
2010-08-20 20:29:03 +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
2f1e68128e
Fixed proclamation for compiled-function-file.
2010-07-31 13:34:26 +02:00
Juan Jose Garcia Ripoll
cda6b38a9d
Missing double quotes in argument to MSVC compiler
2010-07-24 00:00:42 +02:00
Juan Jose Garcia Ripoll
d275538e07
Fixed the optimizer for OR
2010-07-15 23:02:52 +02:00
Juan Jose Garcia Ripoll
b079b1208c
In VALUES-TYPE-TO-N-TYPES the number of requested types may be zero (i.e. multiple-value-bind with zero arguments)
2010-07-14 22:47:06 +02:00
Juan Jose Garcia Ripoll
1dadff58e6
Sometimes in the list of forms, when simplifying, NIL and other atomic expressions get in. Ignore them in the type propagation phase.
2010-07-14 22:31:05 +02:00
Juan Jose Garcia Ripoll
d31e14eedc
Removed a debug statement in PROCLAIM
2010-07-14 18:44:12 +02:00
Juan Jose Garcia Ripoll
ab29bc1438
Fixed the expansion of DECLAIM (in cmpenv-declaim.lsp)
2010-07-14 18:39:44 +02:00
Juan Jose Garcia Ripoll
905475f954
Allo (declare (notinline (setf ...))) (A. Gavrilov)
2010-07-11 12:35:00 +02:00
Juan Jose Garcia Ripoll
330ee771d8
In (DECLARE (IGNORE (FUNCTION ...))) ECL complained about the arguments. Remove a spurious check. (A. Gavrilov)
2010-07-11 12:34:01 +02:00
Juan Jose Garcia Ripoll
a1ccbbe972
Deactivate warning about missing type propagation code for FUNCALL.
2010-07-01 23:39:12 +02:00
Juan Jose Garcia Ripoll
1eb33bb8af
Fixed typo in GET-ARG-TYPES: local declarations were not properly parsed.
2010-07-01 22:45:19 +02:00
Juan Jose Garcia Ripoll
9b548005fb
Silence some type propagation messages
2010-06-30 21:30:07 +02:00
Juan Jose Garcia Ripoll
fd2848c9c7
Function proclamations are also used to deduce the argument types and automatically generate type checks.
2010-06-28 21:39:20 +02:00
Juan Jose Garcia Ripoll
2cacf0aefc
Simplifications in compiler macro for TYPEP
2010-06-28 21:37:07 +02:00
Juan Jose Garcia Ripoll
87482f66a9
Reimplemented the compiler flags to allow switching off the flags
2010-06-28 21:36:04 +02:00
Juan Jose Garcia Ripoll
25634d1534
Fix various function proclamations and declarations
2010-06-28 21:34:13 +02:00
Juan Jose Garcia Ripoll
f6ed398f40
Fixed typo in cmptype-prop.lsp
2010-06-22 00:07:33 +02:00