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