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
Juan Jose Garcia Ripoll
4a3349a9f2
Implemented weak pointers.
2009-09-03 16:54:25 +02:00
Juan Jose Garcia Ripoll
d8cd52fefa
The routines for allocating bignums in a compact way is exported to alloc_2.d so that it can be applied to other objects.
2009-08-29 15:40:40 +02:00
Juan Jose Garcia Ripoll
44443c10b8
Prefixed the big_register* functions with _ecl_
2009-08-28 20:06:40 +02:00
Juan Jose Garcia Ripoll
2b7a47bab7
Fixed typo
2009-05-23 20:23:43 +02:00
Juan Jose Garcia Ripoll
c6316ebae3
Simplify a bit the finalization routine
2009-05-23 20:22:30 +02:00
Juan Jose Garcia Ripoll
94725152ce
Fix Boehm-Weiser gc so that we can use our mprotect() mechanism for deferring signals together with B-W's memory protection and generational garbage collector.
2009-05-23 15:53:30 +02:00
Juan Jose Garcia Ripoll
17b480b3f2
Only allocate the safety region when max_heap_size = 0
2009-05-21 12:47:11 +02:00
Juan Jose Garcia Ripoll
3b02b09ff6
Remove unused #ifdef statement in alloc_2.d
2009-05-20 22:44:31 +02:00
Juan Jose Garcia Ripoll
005d901521
Remove unused statement.
2009-05-20 22:43:54 +02:00
Juan Jose Garcia Ripoll
6f6868019a
Remove the last explicit check for out of memory condition.
2009-05-20 22:39:34 +02:00
Juan Jose Garcia Ripoll
2c8690bf58
Out of memory errors are now somewhat restartable.
2009-05-20 22:03:58 +02:00
Samium Gromoff
da102ce9bd
Unprotected allocation.
2009-04-23 22:07:27 +02:00
Juan Jose Garcia Ripoll
4a351ae057
Fixes related to the new version of garbage collector and the Windows port.
2009-04-03 19:09:33 +02:00
Juan Jose Garcia Ripoll
3687fa0812
Upgraded Boehm-Weiser garbage collector to version 7.1
2009-04-03 18:01:00 +02:00
Juan Jose Garcia Ripoll
8004e7e027
Removed the entry_fixed pointer because we are not using it.
2009-02-21 22:51:36 +01:00
Juan Jose Garcia Ripoll
8697d90d4b
The {instance,bytecodes,bclosure}.entry{,_fixed} fields were not always filled
2009-02-15 16:25:01 +01:00
Juan Jose Garcia Ripoll
f096fdac51
Initial changes for a common dispatch function
2009-02-13 17:05:21 +01:00
Juan Jose Garcia Ripoll
061b9d0e78
New function, EXT:HEAP-SIZE to change the memory limits
2009-01-27 21:49:52 +01:00
Juan Jose Garcia Ripoll
f7c965c3be
The single-threaded code did not build. file_listen() does not work on actual files.
2008-10-26 13:30:40 +01:00
Juan Jose Garcia Ripoll
d916ff8349
Replaced EXT:SET-STACK-SIZE with the pair EXT:SET/GET-LIMIT which also allows to adjust the heap size.
2008-10-25 20:49:00 +02:00
Juan Jose Garcia Ripoll
0a286237d6
Add detection of out of memory conditions.
2008-10-25 17:53:35 +02:00
Juan Jose Garcia Ripoll
0210ca16d0
Removed debugging statement
2008-10-12 23:28:13 +02:00
Juan Jose Garcia Ripoll
5cfb4c0919
Use of lists to keep the list of libraries is safe against threads and signal race conditions.
2008-10-12 00:26:05 +02:00