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
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
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
557221c97e
FINISH-OUTPUT was not defined for FILE streams
2010-07-28 23:14:19 +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
175ecd5891
Search for the ffi.h header in other locations.
2010-07-04 22:53:35 +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
117eae2810
Export POSIX function getuid()
2010-06-30 21:31:31 +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
24a6ae8c4e
Fixes in the implementation of MAKE-PATHNAME and NAMESTRING
2010-06-28 21:33:04 +02:00
Juan Jose Garcia Ripoll
6243b666fc
Extend SI::PROCESS-LAMBDA to handle function types
2010-06-27 10:10:39 +02:00
Juan Jose Garcia Ripoll
7400c722d8
Export a new feature, C++, when a C++ compiler is used.
2010-06-24 22:46:25 +02:00
Juan Jose Garcia Ripoll
14cf3f7029
Replace more uses of cl_cos/sin/... with ecl_cos/sin/..
2010-06-20 16:57:21 +02:00
Juan Jose Garcia Ripoll
a49dad3e6d
cl_cos/cl_sin/... now have a slightly cheaper working function ecl_cos/ecl_sin/... that can be directly called
2010-06-19 17:48:33 +02:00
Juan Jose Garcia Ripoll
18475973a8
Fixes for the serialization of long floats
2010-06-18 22:26:36 +02:00
Juan Jose Garcia Ripoll
17d6c88f78
Missing 'break' and 'return' statements in seralize.d
2010-06-09 23:04:57 +02:00
Juan Jose Garcia Ripoll
bd0bd20f98
First steps towards an implementation of the compiler that uses SERIALIZABLE
2010-06-06 23:03:08 +02:00
Juan Jose Garcia Ripoll
15018fa6ac
Extended SERIALIZE to other types
2010-06-06 22:18:12 +02:00
Juan Jose Garcia Ripoll
2c7c81f114
Added a routine that serializes certain objects.
2010-06-06 16:20:30 +02:00
Juan Jose Garcia Ripoll
445d269d6e
Use static constants for rational and complexes
2010-06-04 16:39:51 +02:00
Juan Jose Garcia Ripoll
fe56a0c5a9
In number.d we use ecl_def_ct* instead of allocating the floating point numbers at boot time.
2010-06-04 15:46:09 +02:00
Juan Jose Garcia Ripoll
25812024d4
Fixed definition of ecl_float_nan_p
2010-06-04 15:22:12 +02:00
Juan Jose Garcia Ripoll
2e1b5463e0
Logical pathnames are now uppercased
2010-06-03 20:41:21 +02:00
Juan Jose Garcia Ripoll
a7a221e136
Optimized COPY-SUBARRAY and used it for improving REPLACE
2010-05-28 23:46:00 +02:00
Juan Jose Garcia Ripoll
3c8b734b61
Simplify ASSERT making it cheaper.
2010-05-27 20:04:58 +02:00
Juan Jose Garcia Ripoll
e33fb2f3c2
New special form EXT:COMPILER-TYPECASE used to create compiler macros that select code based on the types of expressions.
2010-05-25 22:16:46 +02:00
Juan Jose Garcia Ripoll
b5d5cacbde
Use a hash to seek the compilation strategies in the interpreter
2010-05-25 19:42:44 +02:00
Juan Jose Garcia Ripoll
d4f96996e3
The CONS-CDR/CAR optimization was not working fully because the interpreter did not support it and because there were macros shadowing the actual functions.
2010-05-23 22:47:36 +02:00
Juan Jose Garcia Ripoll
c60112a470
New auxiliary functions CONS-CAR/CONS-CDR help in optimizing loops
2010-05-23 16:31:45 +02:00
Juan Jose Garcia Ripoll
5141fad5e0
SEQUENCE-START-END now returns also the length of the sequence
2010-05-21 23:27:49 +02:00
Juan Jose Garcia Ripoll
61b86312e4
Reimplemented REMOVE using specialized vector and list operations.
2010-05-21 21:05:22 +02:00
Juan Jose Garcia Ripoll
4be12cb2c0
New C functions for copy-seq and subseq
2010-05-21 11:24:17 +02:00
Juan Jose Garcia Ripoll
909ed7f1c5
Export the utility function SEQUENCE-COUNT
2010-05-20 23:33:16 +02:00
Juan Jose Garcia Ripoll
04f6b655d1
Fixed typos in error messages from sequence-start-end
2010-05-20 14:57:40 +02:00
Juan Jose Garcia Ripoll
ec0ddc1174
New function SEQUENCE-START-END
2010-05-20 12:30:52 +02:00
Juan Jose Garcia Ripoll
f7ad326bee
Changed the order of arguments in ASET to simplify the resulting SETF forms
2010-05-19 10:22:38 +02:00
Juan Jose Garcia Ripoll
38d0b5fa47
New symbol COMPLEX-ARRAY needed by the type ladder
2010-05-18 12:24:54 +02:00
Juan Jose Garcia Ripoll
dbde7df2b7
Add SIGNAL-TYPE-ERROR also to symbols_list2
2010-05-16 17:31:55 +02:00
Juan Jose Garcia Ripoll
5b53ee01df
New function SI:SIGNAL-TYPE-ERROR
2010-05-15 16:48:10 +02:00
Juan Jose Garcia Ripoll
1d4f8ac75d
Define a new built-in type ANSI-STREAM in the EXT package and used it in predlib, builtin.lsp and in the Gray streams package
2010-05-09 22:19:22 +02:00
Juan Jose Garcia Ripoll
6ae9d38bdb
New type, ARRAY-INDEX, exported from EXT.
2010-05-09 20:28:01 +02:00