Commit graph

479 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
14abe649fa ECL implements CDR 5 2011-08-05 00:16:34 +02:00
Juan Jose Garcia Ripoll
7278358db3 Change SI:CATCH-SIGNAL to accept a keyword argument :LOCAL and have only thread-local influence (only works in POSIX) 2011-08-02 22:01:06 +02:00
Juan Jose Garcia Ripoll
599f8017e1 Function read_VV is renamed to ecl_init_module() 2011-08-01 15:39:46 +02:00
Juan Jose Garcia Ripoll
e6bb812e38 Protect the GET/SET-SYSPROP hash using the same global lock as packages, which is now called cl_core.global_env read/write-lock 2011-07-31 17:03:24 +02:00
Juan Jose Garcia Ripoll
cc2b0901f9 Hash tables are no longer implicitly locked 2011-07-31 15:24:50 +02:00
Juan Jose Garcia Ripoll
e0d89daf02 Added the possibility of linking ECL's compiled data as binary data at the end of the compiled files, instead of C constants. 2011-06-23 21:28:58 +02:00
Juan Jose Garcia Ripoll
2693093c7d Added functions to MMAP files into memory (Unix only). 2011-06-19 17:08:08 +02:00
Juan Jose Garcia Ripoll
1801c64bff Dedicated function for loaded bytecompiled files 2011-06-05 12:35:35 +02:00
Juan Jose Garcia Ripoll
853ec3ebc5 Errors in array/sequence indexes are now a bit more uniform. Eliminated FEillegal_index. Changed prototype for FEtype_error_index. Fixed typo in FEwrong_index. 2011-04-03 10:03:50 +02:00
Juan Jose Garcia Ripoll
a7000ca0f9 Reimplementation of the SIGCHLD handler -- avoids race conditions using the signal handling thread. 2011-03-13 21:59:36 +01:00
Juan Jose Garcia Ripoll
c2935cbb4f New function ecl_delete_eq 2011-03-13 21:58:41 +01:00
Juan Jose Garcia Ripoll
1523ae8a5c EXT package created containing the original set of symbols (not yet filtered) and re-exported from SYS 2011-02-27 23:20:12 +01:00
Juan Jose Garcia Ripoll
bc4469906f Trap and use SIGCHLD to update the status of running processes 2011-02-27 16:57:46 +01:00
Juan Jose Garcia Ripoll
ad18f713c4 The bytecodes compiler may now compile constant values using make-load-forms 2011-02-27 10:58:09 +01:00
Juan Jose Garcia Ripoll
a136b663bd Embed the Unicode database in the C library as a sequence of C arrays. 2011-02-20 23:52:24 +00:00
Juan Jose Garcia Ripoll
40146b3fd3 The TRACE mechanism no longer inspects the bytecodes, but rather relies on the central database *TRACE-LIST* (Still not thread safe) 2011-02-06 20:04:35 +01:00
Juan Jose Garcia Ripoll
87a7b900b2 New function SI:PROPER-LIST-P 2011-02-06 19:57:29 +01:00
Juan Jose Garcia Ripoll
1a775ca835 SI:BC-SPLIT and SI:BC-JOIN now as means to deconstruct and join a bytecodes object. 2011-02-04 21:52:05 +01:00
Juan Jose Garcia Ripoll
e6d180e7df The socket functions now accept an optional :ELEMENT-TYPE keyword argument, in addition to :EXTERNAL-FORMAT 2011-01-24 23:03:14 +01:00
Juan Jose Garcia Ripoll
a86bbd3605 Fixed various warnings to allow compiling ECL with CLang 2011-01-23 16:06:47 +01:00
Juan Jose Garcia Ripoll
93b904b1e6 Implicit conversion in make_constant_base_string prevented compilation with C++ compiler 2011-01-16 15:12:59 +01:00
Juan Jose Garcia Ripoll
4a83432e01 ecl_make_simple_base_string() replaces make_simple_base_string() and allows fixing the length. 2011-01-13 23:28:44 +01:00
Juan Jose Garcia Ripoll
f0793de5b4 New function ecl_signbit() 2010-12-19 20:06:15 +01:00
Juan Jose Garcia Ripoll
c952641c43 Added C backtraces (EXT:DUMP-C-BACKTRACE) and used them at boot time, when the error handler is not set up. 2010-11-07 12:49:55 +01:00
Juan Jose Garcia Ripoll
70a045f667 Split out 1+, 1-, conjugate, negate 2010-11-02 18:28:23 +01:00
Juan Jose Garcia Ripoll
79d8e9b569 Split printer into separate files, factorizing those for unreadable printing 2010-10-28 23:05:25 +02:00
Juan Jose Garcia Ripoll
1e3eb5b62a Global locking is done through three different locks, cl_core.global_lock, error_lock and package_lock. 2010-10-24 17:53:29 +02:00
Juan Jose Garcia Ripoll
89ad07fefc The list of packages to be created is now thread-local and its manipulation is thus thread safe. 2010-10-24 00:00:22 +02:00
Juan Jose Garcia Ripoll
8c42f280c8 Added support for POSIX read/write locks 2010-10-23 23:03:02 +02:00
Juan Jose Garcia Ripoll
24b9f04161 ECL captures SIGPIPE 2010-10-17 16:49:13 +02:00
Juan Jose Garcia Ripoll
69f87e41d3 ECL now waits for its signal handling thread to start so that quitting becomes safe. 2010-10-17 15:14:20 +02:00
Juan Jose Garcia Ripoll
4f23ce577c Ported SBCL's FLONUM-TO-STRING to ECL's core (in C).
New function INTEGER-TO-STRING added to ECL's core.
Both FLOAT-TO-STRING and INTEGER-TO-STRING are used in ECL's printer.
FORMAT uses ECL's new FLOAT-TO-STRING.
2010-10-17 14:38:47 +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
Juan Jose Garcia Ripoll
1af0162b6f The compiler package is now part of the ones that are built in 2010-09-12 09:58:33 +02:00
Juan Jose Garcia Ripoll
c4dd32ca96 Third iteration at the problem with packages_to_be_created. Now this variable is associated to a flag that deactivates its use outside read_VV's reader. 2010-09-05 22:43:49 +02:00
Juan Jose Garcia Ripoll
6e90253faf Fixed compiler warnings 2010-08-24 17:32:22 +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
b9b648e16e The default rehash size and threshold are now static constants. 2010-08-21 11:53:33 +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
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
e83bd3dfb4 Unboxed type SHORT-FLOAT removed from the core. 2010-08-17 19:47:14 +02:00
Juan Jose Garcia Ripoll
117eae2810 Export POSIX function getuid() 2010-06-30 21:31:31 +02:00
Juan Jose Garcia Ripoll
7956d93bb1 Add declaration for FEwrong_index 2010-06-20 00:30:43 +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
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
b5d5cacbde Use a hash to seek the compilation strategies in the interpreter 2010-05-25 19:42:44 +02:00