This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Ok, there's yet another gc up at my website. This is basically guile's current gc with the object marks moved from the object into separate heap cells (chunklets). From the readme: Features: * Removes the need for separate GC & GC8 marks for different objects * Faster than the current gc in `fair' tests (where the semantics of expmem are fixed, so that the current gc doesn't keep allocating huge amounts of space). Possible incompatibilities: * Removes the ability to create heap cells with ncells > 1 * Removes the expmem bits (may be reintroduced). * Removes the usage of the second word of a struct as a gc mark. It is slower (overall) than the gc as distributed with guile (since currently expmem does not behave correctly; heap segments continue to grow by 2*scm_heap_size every time they're allocated), but, even in this case, each pause for each individual gc will be shorter. When the current gc behaves `correctly' (expmem only kicks in when you couldn't allocate the initial desired heap size), this gc wins. The tarball is at http://home.thezone.net/~gharvey/guile/guilegc.tar.gz This includes a patch against the current cvs sources, as well as new gc.c and gc.h files (enough has changed that a diff for these doesn't make sense). It doesn't support the 1.3 release (this isn't difficult to fix if you really want it). -- Greg