Alexander Gavrilov
7c7a40e4bd
Add a function for computing the pointer to a row-major-aref item.
...
This is necessary for open-coding the actual array access, while
keeping the array object type and index bound check. The array
element type is not checked; instead the function ensures that the
specified number of bytes at the returned ptr are within bounds.
2010-08-20 20:29:03 +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
Alexander Gavrilov
ce2badff90
Add the boxed SSE packed vector types.
...
Boxing SSE values is useless performance-wise, but necessary
to provide continuity between compiled and interpreted code.
This set of types is peculiar in that while the actual CPU
instruction set mostly does not care about the data types
(although mixing commands for ints and floats leads to
some performance degradation), the C intrinsic function
interface does distinguish the types to some extent.
Thus it also has to be represented in the ECL compiler.
2010-08-20 20:29:03 +02:00
Juan Jose Garcia Ripoll
7178a288a6
Slight reorganization in RENAME-FILE
2010-08-20 20:21:54 +02:00
Juan Jose Garcia Ripoll
ed8dbe4c13
(EXPT 2 -2.0d0) is now computed in double precision.
2010-08-20 20:19:51 +02:00
Juan Jose Garcia Ripoll
ee5dcec824
Change RENAME-FILE so that it does not use link/unlink. This way it can move directories
2010-08-19 23:29:28 +02:00
Juan Jose Garcia Ripoll
8440e9d0c4
Fixed typo.
2010-08-18 23:07:03 +02:00
Juan Jose Garcia Ripoll
6a1a28f343
Fixed typo.
2010-08-18 23:07: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
0e3b1c389f
Replace some more uses of mpz_set_si/ui with _ecl_big_set_fixnum/index
2010-08-17 19:47:13 +02:00
Juan Jose Garcia Ripoll
680bd6988c
If ECL is too small, long long can be used for cl_fixnum
2010-08-17 19:47:13 +02:00
Juan Jose Garcia Ripoll
5d76e2e302
Simplify integer type tests using Autoconf's ones (G. Dos Reis)
2010-08-11 23:53:26 +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
557221c97e
FINISH-OUTPUT was not defined for FILE streams
2010-07-28 23:14:19 +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
fdc427ff9a
Remove some C-LOCAL statements from functions in describe.lsp that were needed by inspect.lsp
2010-07-22 23:07:53 +02:00
Juan Jose Garcia Ripoll
e7a3a1ca82
Fixes for serialize.d to let it compile on Windows
2010-07-22 23:07:12 +02:00
Juan Jose Garcia Ripoll
5e94433586
si::getuid cannot be defined in Windows.
2010-07-22 22:48:45 +02:00
Juan Jose Garcia Ripoll
d275538e07
Fixed the optimizer for OR
2010-07-15 23:02:52 +02:00
Juan Jose Garcia Ripoll
3628bf3f82
When using DEFSETF, DEFINE-SETF-EXPANDER and similar functions, the SETF functions were undefined.
2010-07-15 22:46:43 +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
76a0f027a6
When using DEFMETHOD we called EVAL-WITH-ENV using :load-toplevel mode instead of :execute. This causes some trouble. Until the bytecodes compiler is revised we may safely fall back to :execute.
2010-07-13 23:18:07 +02:00
Juan Jose Garcia Ripoll
4fb36efd04
In WALK-METHOD-LAMBDA use eval-with-env to get access to the macros that are defined in the compiler environment
2010-07-11 15:10:20 +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
378917c199
CHECK-INITARGS should do nothing when CACHED-KEYWORDS = T (meaning &allow-other-keys)
2010-07-11 12:30:10 +02:00
Juan Jose Garcia Ripoll
3ce9a3f6c6
Fixed warning message (A. Gavrilov)
2010-07-11 12:27:02 +02:00
Juan Jose Garcia Ripoll
5bf130dfbc
Create a small script to run ecl_min
2010-07-04 22:53:51 +02:00
Juan Jose Garcia Ripoll
175ecd5891
Search for the ffi.h header in other locations.
2010-07-04 22:53:35 +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
8ce8d5aeb4
When chaining pathname translations, case was not properly translated.
2010-07-01 22:02:02 +02:00
Juan Jose Garcia Ripoll
539ca66757
Eliminate CLINES and C-INLINE from asdf
2010-06-30 23:25:44 +02:00
Juan Jose Garcia Ripoll
c1374befd6
Upgrade version number in anticipation of upcoming release
2010-06-30 23:25:19 +02:00
Juan Jose Garcia Ripoll
117eae2810
Export POSIX function getuid()
2010-06-30 21:31:31 +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
086ae2e5d1
ECL is compiled without automatic generation of argument checks.
2010-06-28 21:37:48 +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
738d04bd40
Added a declaration symbol to the core
2010-06-28 21:36:26 +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
24a6ae8c4e
Fixes in the implementation of MAKE-PATHNAME and NAMESTRING
2010-06-28 21:33:04 +02:00
Juan Jose Garcia Ripoll
8abce51390
Fix emacs.el to load the old compiler
2010-06-27 10:11:34 +02:00
Juan Jose Garcia Ripoll
d9cfd08beb
Make explicit whether we want argument checking or not
2010-06-27 10:11:24 +02:00