Juan Jose Garcia Ripoll
1112bb12fb
Add prototypes for functions in gc/private/gc_priv.h which are needed by ECL.
2012-08-15 20:14:18 +02:00
Juan Jose Garcia Ripoll
14d2960135
Use a spinlock for a thread wait until its process structure is completed by its parent. Rename waiting_for to woken_up for the real application it has.
2012-07-30 22:11:50 +02:00
Juan Jose Garcia Ripoll
469c8a520f
Save the errors caused by the dynamic linker in the codeblock object
2012-07-23 22:48:00 +02:00
Juan Jose Garcia Ripoll
9287a516ff
Yet another iteration for condition variables: now the lock is only released only once the thread has been added to the queue.
2012-07-13 21:35:38 +02:00
Juan Jose Garcia Ripoll
595f3dbe58
The previous implementation of condition variables was wrong: it assumed that the signaling thread did not own the lock.
2012-07-11 00:06:33 +02:00
Juan Jose Garcia Ripoll
e54d9a6173
Rename type_of -> ecl_t_of
2012-07-05 23:07:34 +02:00
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