summaryrefslogtreecommitdiffstats
path: root/tests/006/freeform-1.expected
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-04-03 16:10:59 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-04-03 16:10:59 -0700
commit2561b623c178a08de9cdcda35a5a5fc8f83bdaf7 (patch)
tree48b8680a29c1b872a4c44e1b1d555cbe894e9536 /tests/006/freeform-1.expected
parent1ce504148e960fa8fdd3701977786b99a7437f57 (diff)
downloadtxr-2561b623c178a08de9cdcda35a5a5fc8f83bdaf7.tar.gz
txr-2561b623c178a08de9cdcda35a5a5fc8f83bdaf7.tar.bz2
txr-2561b623c178a08de9cdcda35a5a5fc8f83bdaf7.zip
Generational GC showing signs of working. One test case in
test suite fails. * gc.c (FRESHQ_SIZE): New preprocessor symbol. (backptr_oflow, freshq, freshq_head, freshq_tail): New static variables. (make_obj): Place newly allocated generation 0 object into freshq. If freshq becomes full, transfer oldest item into generation 1. (mark_obj): If doing only a partial gc, then do not mark objects which are not generation 0. (mark_mem_region): Valgrind support: cannot mark t.type field undefined because it is a bitfield. Just mark the first SIZEOF_PTR bytes of the object defined. (mark): Under partial gc, mark the table of back pointers. (sweep_one): New static function from the prior guts of sweep. Reachable objects now get promoted to generation 1. (sweep): Under partial gc, sweep just the freshq which identifies the generation 0 objects, rather than the entire linked list of all the heaps. (gc): Trigger full gc also if the backptr list has overflowed due to gc having been disabled. Under generational gc, reset the static variables afterward: clear the list of backpointers, and the freshq. (gc_is_reachable): Under partial gc, report any mature object as reachable. (gc_set, gc_mutated): Handle backptr array overflow situation when gc is disabled. (gc_push): Bugfix: it is the newly pushed cons cell that has to be marked as a root, not the value being pushed. * hash.c (sethash): Use set macro for storing value. * lib.h (set, mut, mpush): Fix wrong-way #if test for these macros. The trivial versions were being defined uner CONFIG_GEN_GC and vice versa!
Diffstat (limited to 'tests/006/freeform-1.expected')
0 files changed, 0 insertions, 0 deletions