Commit graph

171 commits

Author SHA1 Message Date
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
Juan Jose Garcia Ripoll
40ee2b29eb Use of __builtin_expect() to mark rare error conditions. Use of __attribute__((noreturn)) on error functions which are used at the beginning of a function and do not have possibility of triggering a longjmp int the same function. 2010-02-03 23:30:16 +01:00
Juan Jose Garcia Ripoll
2908aabbbc Undo previous garbage collector change. 2010-02-03 22:43:04 +01:00
Juan Jose Garcia Ripoll
6c77033ad6 When marking the environment, only mark pages that are dirty. 2010-02-03 21:01:05 +01:00
Juan Jose Garcia Ripoll
a5f254cb13 Own marking routine for garbage collection. 2010-02-02 16:53:53 +01:00
Juan Jose Garcia Ripoll
2da3cb5af2 Dispatch allocation to functions using pointers. 2010-02-02 10:30:07 +01:00
Juan Jose Garcia Ripoll
c0c339510b Do not define the free list and new kind unless needed. 2010-02-02 00:05:50 +01:00
Juan Jose Garcia Ripoll
e30ccfaec9 We are using __builtin_expect() which is not portable. Define a macro for non-GCC compilers. 2010-02-02 00:04:38 +01:00
Juan Jose Garcia Ripoll
8f51774f56 Activated code for inline allocation. 2010-02-02 00:00:14 +01:00
Juan Jose Garcia Ripoll
1e4f19a631 Group the precise marking code so that it builds also without --enable-precisegc. 2010-02-01 16:47:27 +01:00
Juan Jose Garcia Ripoll
78ff9930cc Implemented precise marking of objects using Boehm's typed objects. 2010-02-01 14:54:59 +01:00
Juan Jose Garcia Ripoll
dcb68018c3 Changes to make the MSVC port work again, including fixes for EXT:RUN-PROGRAM and EXT:EXTERNAL-PROCESS-WAIT. 2010-01-25 22:58:06 +01:00
Juan Jose Garcia Ripoll
2a27dc6404 Introduced EXT:EXTERNAL-PROCESS structure. RUN-PROCESS creates that structure. New function EXT:EXTERNAL-PROCESS-WAIT. 2010-01-25 20:51:36 +01:00
Juan Jose Garcia Ripoll
943d65ec12 In alloc_2.d, when recycling a symbol binding index we cannot cons inside
a THREAD_OP_LOCK() region because this may be interrupted by a garbage
collection process - instead perform the allocation outside and then
do an atomic update of the indices list.
2010-01-23 23:29:57 +01:00
Juan Jose Garcia Ripoll
058d247bd4 Special variable bindings using a thread-local array instead of a hash table. 2010-01-22 17:47:10 +01:00
Juan Jose Garcia Ripoll
5338bcb157 Do not free the input / output buffers to avoid consing and memory fragmentation when reading long strings. 2009-12-02 16:02:58 +01:00
Juan Jose Garcia Ripoll
e8f57bdec6 When creating structures and instances, always set instance.sig to a printable value, ECL_UNBOUND 2009-11-29 22:00:00 +01:00
Juan Jose Garcia Ripoll
bdf8d9d037 Initial version of semaphores both for POSIX and Windows. Includes test that detects failure of unnamed semaphores under Darwin. The whole code is still inactive. 2009-09-23 23:52:47 +02:00
Juan Jose Garcia Ripoll
161926ac93 Solved some problem with the queueing of signals and added preliminary code for MP:INTERRUPT-PROCESS using Windows page guards. 2009-09-20 21:53:02 +02:00
Juan Jose Garcia Ripoll
8b57696625 Fixed a couple of typos in ecl_set_finalizer_unprotected(). 2009-09-05 12:31:11 +02:00
Juan Jose Garcia Ripoll
a35ba14206 Create ecl_set_finalizer_unprotected() for situations in which a finalizer must be set with interrupts disallowed. 2009-09-05 10:41:59 +02:00