Commit graph

198 commits

Author SHA1 Message Date
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