Commit graph

4280 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
ab6f5dc64e Add the definition of ECL_MS_WINDOWS_HOST to MSVC's config.h 2010-08-22 22:30:14 +02:00
Juan Jose Garcia Ripoll
5c63cd8345 When compiling for the Windows API, define ECL_MS_WINDOWS_HOST instead of checking for mingw or _MSC_VER separately (Gabriel Dos Reis) 2010-08-22 22:29:21 +02:00
Juan Jose Garcia Ripoll
fb2c950202 Use GMP_CPPFLAGS in src/util/ecl-config 2010-08-22 22:29:18 +02:00
Juan Jose Garcia Ripoll
03fd191528 Fixed --with-gmp-prefix, which should modify CPPFLAGS not CFLAGS. 2010-08-22 22:28:24 +02:00
Juan Jose Garcia Ripoll
e4262ab3d8 Fixed declaration for _ecl_big_set_fixnum/index (Gabriel Dos Reis). Added those functions to the core in all cases. 2010-08-22 21:53:50 +02:00
Juan Jose Garcia Ripoll
a9a412d1b4 Fixed typo in condition initarg name. 2010-08-22 20:35:38 +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
Juan Jose Garcia Ripoll
a677a3b0c0 Rename features.h -> ecl_features.h because Linux has a header with the same name 2010-08-21 22:46:03 +02:00
Juan Jose Garcia Ripoll
321356dadf cl_core is now mostly filled statically in main.d 2010-08-21 16:31:42 +02:00
Juan Jose Garcia Ripoll
ca6e9168cb Fixed two small typos 2010-08-21 16:31:23 +02:00
Juan Jose Garcia Ripoll
bac154bc98 More of the string constants that are used in main.d are now statically allocated. 2010-08-21 13:25:16 +02:00
Juan Jose Garcia Ripoll
b400db086b Avoid consing when creating the package names. 2010-08-21 12:08:48 +02:00
Juan Jose Garcia Ripoll
b9b648e16e The default rehash size and threshold are now static constants. 2010-08-21 11:53:33 +02:00
Juan Jose Garcia Ripoll
b54f17085c New condition for Unix signals. 2010-08-20 23:41:30 +02:00
Juan Jose Garcia Ripoll
dc2ce379ec Make the SSE2 feature optional. 2010-08-20 21:07:01 +02:00
Alexander Gavrilov
8ed8a8e807 Add a function for retrieving the array element size in bytes.
This information is necessary for various alignment needs and
other low-level memory manipulation. For bit it returns a ratio.
2010-08-20 20:29:04 +02:00
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