Commit graph

191 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
825fc8cbd3 Cnil and Ct are now part of legacy 2012-06-30 23:01:40 +02:00
Juan Jose Garcia-Ripoll
efadef99dc Prefix the block creation macros, ECL_BLOCK_*, etc 2012-06-30 12:01:44 +02:00
Juan Jose Garcia Ripoll
235a587cc6 Rename sf(), df(), and the bignum suffixes big_size, big_dim and big_limbs. Old versions moved to legacy.h 2012-06-06 21:08:47 +02:00
Juan Jose Garcia Ripoll
64a9168434 CHARACTERP, BASE_CHAR_P, BASE_CHAR_CODE_P, CODE_CHAR, CHAR_CODE, REAL_TYPE, IMMEDIATE, IMMEDIATE_TAG, FIXNUM_TAG, FIXNUM_MINUSP, FIXNUM_PLUSP, FIXNUMP and fix get the ecl_ prefix 2012-06-06 11:19:55 +02:00
Juan Jose Garcia Ripoll
e950fc51bb Detect the codepage in Windows. 2012-05-19 10:07:48 +02:00
Juan Jose Garcia Ripoll
ad49125681 Implemented a first prototype of mailbox 2012-04-07 00:55:14 +02:00
Juan Jose Garcia Ripoll
9ee80d0396 Sometimes the environment of a process might be NULL -- in that case, avoid marking. 2012-04-06 11:47:58 +02:00
Juan Jose Garcia Ripoll
a5eb54dd27 Implemented mp:barrier and fixed unixsys.d to use spinlocks and not real locks. 2012-04-06 00:18:29 +02:00
Juan Jose Garcia Ripoll
1a9789f271 Directly access the option values array and only block the process interrupt in ecl_wait_on(). 2012-03-29 22:11:29 +02:00
Juan Jose Garcia Ripoll
5b1007c787 Change field names and introduce the spinlock in the lock structure 2012-03-29 17:43:27 +02:00
Juan Jose Garcia Ripoll
4cf99dce0b Reuse the cons that is used for adding a process to a wait queue. 2012-03-29 15:25:59 +02:00
Juan Jose Garcia Ripoll
bc738ccae8 The lock.waiter field was not marked during GC 2012-03-19 00:59:51 +01:00
Juan Jose Garcia Ripoll
141b2f909b Implemented a first version of userspace condition variables. 2012-03-17 20:56:58 +01:00
Juan Jose Garcia Ripoll
fad8ebefae Fixed unbalanced parenthesis in alloc_2.d 2012-03-17 19:34:48 +01:00
Juan Jose Garcia Ripoll
67002663ae Creation/destruction of global variable identifiers does not require a lock. 2012-02-19 22:56:10 +01:00
Juan Jose Garcia Ripoll
ce73d0a60a Implemented a wait queue for locks and other events. 2012-02-19 01:23:06 +01:00
Juan Jose Garcia Ripoll
9707940125 The process list is now an array 2012-02-18 20:16:06 +01:00
Juan Jose Garcia Ripoll
0e1d0226b2 Explicitly mark the current thread environment, just in case it was not properly installed in cl_core.processes (this happens when registering external threads). 2012-02-18 10:48:48 +01:00
Juan Jose Garcia Ripoll
d5296f2563 Implement mutexes using CAS. Deactivate condition variables temporarily. 2012-02-12 23:31:29 +01:00
Juan Jose Garcia Ripoll
d2f740b9af Fixed comment on gather_statistics() 2011-12-30 12:40:06 +01:00
Juan Jose Garcia Ripoll
5a22fc4b36 In the precise garbage collector, removed a reference to an inexistent field hash.lock. 2011-08-28 17:04:43 +02:00
Juan Jose Garcia Ripoll
da11b861eb Nested TIME calls do not reset the GC counters. This requires reimplementing GC-STATS to have a special input value mean 'resetting the counters'. 2011-02-08 23:54: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
9a4ae70bed Read/write lock fixes: typos, C prototypes and a new keyword used in compiled code (J. James) 2011-01-19 22:22:19 +01:00
Juan Jose Garcia Ripoll
be3e31abb0 Fixed marking of read-write locks 2010-12-10 22:53:56 +01:00
Juan Jose Garcia Ripoll
3b92fb53f0 Removed the possibility of building ECL without bignums 2010-11-06 16:42:39 +01:00
Juan Jose Garcia Ripoll
c86c8bd5c0 Move packages to read/write locks 2010-10-24 17:53:44 +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
8c42f280c8 Added support for POSIX read/write locks 2010-10-23 23:03:02 +02:00
Juan Jose Garcia Ripoll
6e90253faf Fixed compiler warnings 2010-08-24 17:32:22 +02:00
Juan Jose Garcia Ripoll
d429aa28f3 windows.h is needed also for mingw in alloc_2.d 2010-08-22 23:15:20 +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
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
2c7c81f114 Added a routine that serializes certain objects. 2010-06-06 16:20:30 +02:00
Juan Jose Garcia Ripoll
f058165214 GC now allows any number of arguments, ignoring them 2010-04-14 15:02:20 +02:00
Trail@.(none)
973090bc55 Use __MINGW32__ instead of mingw32 as preprocessor criterion of MinGW-ness. 2010-04-05 22:31:53 +02:00
Juan Jose Garcia Ripoll
0e2fc917f7 Complete previous fix for weak-pointer. 2010-04-03 15:07:12 +02:00
Juan Jose Garcia Ripoll
e5b22e51cc Weak pointers do not need finalization when the value is not a pointer. 2010-04-03 11:13:44 +02:00
Juan Jose Garcia Ripoll
dbc354ac49 Remove the object finalization queue, now that the garbage collector provides one. 2010-03-20 15:48:59 +01:00
Juan Jose Garcia Ripoll
b540a6c0bb Fixed typo in the finalizer of weak pointers (A. Gavrilov) 2010-03-20 13:34:10 +01:00
Juan Jose Garcia Ripoll
86c211a6a1 Optimize ecl-inl.h for small cons and use of ecl_unlikely. New macros ECL_CONSP, ECL_LISTP, ECL_ATOM, ECL_SYMBOLP 2010-02-27 09:47:05 +01:00
Juan Jose Garcia Ripoll
6e4d572bfb Tag many error checks using ecl_unlikely 2010-02-26 10:43:37 +01:00
Juan Jose Garcia Ripoll
53a1d16b4d Replace many uses of FEwrong_type_argument with *_{nth,only}_arg 2010-02-26 09:13:03 +01:00
Juan Jose Garcia Ripoll
188166e350 o->process.env has a separate routine for marking. 2010-02-17 23:55:59 +01:00
Juan Jose Garcia Ripoll
5c25fc1f5f Avoid using _ecl_big_register_normalize() in alloc_2.d 2010-02-07 23:22:26 +01:00
Juan Jose Garcia Ripoll
bcfd36cb8f Number of allocated bytes was didn't have to be multiplied by anything. Reset GC counters every time we call GC-STATS. 2010-02-07 23:02:29 +01:00
Juan Jose Garcia Ripoll
9165901f6d Fixed a typo in EXT:GC-STATS that left statistics printing activated. 2010-02-07 12:17:35 +01:00
Juan Jose Garcia Ripoll
2dd21b7cd1 (EXT:GC-STATS :FULL) now tells the garbage collector to produce full statistics. 2010-02-07 00:02:52 +01:00
Juan Jose Garcia Ripoll
337819233d Replace use of __builtin_expect() with two macros, ecl_{likely,unlikely} 2010-02-04 16:54:05 +01:00