diff options
author | Han-Wen Nienhuys <hanwen@lilypond.org> | 2008-08-16 13:57:23 -0300 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@lilypond.org> | 2008-08-16 13:57:23 -0300 |
commit | 82ae1b8eb3413e6be6bd2aa032986fc7782e85ac (patch) | |
tree | 7181f0a89744ce910ab3deb3c3c630fb20bc2829 /libguile/strings.h | |
parent | b474ac33ee0e47ab14306c218cb060667f9af2db (diff) | |
download | guile-82ae1b8eb3413e6be6bd2aa032986fc7782e85ac.tar.gz |
Garbage collection cleanup.
* New file gc-segment-table.c: hold code for the segment table.
* Remove data that might be out of date; remove
scm_i_adjust_min_yield(). We don't store min_yields, since they
are only accurate at one point in time (when the sweep finishes).
We decide the min yield at that point from min_yield_fraction and
freelist->collected / freelist->swept
* Introduce scm_i_gc_heap_size_delta() replacing
scm_i_gc_grow_heap_p().
* Remove foo_1 fields containing penultimate results.
* After GC, count mark bit vector to discover number of live
objects. This simplifies hairy updates.
* Many formatting and layout cleanups.
* Fix in scm_i_sweep_card(): return the length of free_list returned,
rather than number of deleted objects.
* For mtrigger GCs: do not also run a full sweep after the gc() call, as
this is inconsistent with lazy sweeping.
* Remove scm_i_make_initial_segment().
* Use calloc in scm_i_make_empty_heap_segment() to save on
initialization code.
* New function scm_i_sweep_for_freelist() which sweeps, with proper
statistic variable updates.
* New segments are conceptually blocks with 100% reclaimable cells.
* Remove some useless constants/comments: SCM_HEAP_SIZE,
SCM_INIT_HEAP_SIZE, SCM_EXPHEAP, SCM_HEAP_SEG_SIZE
* Do not increment scm_cells_allocated() from the
scm_[double]cell(). This would be a race condition.
* Move some deprecation checks in separate functions to not distract
from main code flow.
Diffstat (limited to 'libguile/strings.h')
0 files changed, 0 insertions, 0 deletions