summaryrefslogtreecommitdiffstats
path: root/HACKING
Commit message (Collapse)AuthorAgeFilesLines
* * HACKING: Updating generational GC notes in light of changes.Kaz Kylheku2014-03-291-34/+43
|
* Fix a bug arising from putting generation 1 objects into theKaz Kylheku2014-03-271-15/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | checkobj array (via the mut macro that expands to gc_mutated). The garbage collector assumes that checkobj has only generation 0 objects, which all exist in the freshobj array, which is subject to a sweep. So gen 1 objects in checkobj are never cleaned up properly: they do not have their REACHABLE flag reset, or their generation restored to 1. To fix this, a new array for these objects is introduced separate from checkobj. * gc.c (MUTOBJ_VEC_SIZE): New preprocessor symbol. (mutobj, mutobj_idx): New static array and integer. (mark_obj): Check for REACHABLE flag before checking the full_gc flag and generation, since those cost additional memory accesses. (mark): Mark the objects in the new mutobj array. (sweep): Sweep the objects in the mutobj array. (gc): Reset mutobx_idx to zero after gc. (gc_set): Rearrange logic. In the case that the checkobj array is full and a gc is done to make room, there is no point in adding to the array: the gc pass moves all babies to generation 1, so the object that was passed into the function is no longer a baby. (gc_mutated): Rewrite in terms of mutobj rather than checkobj, fixing the bug. * HACKING: Improved documentation of GC. Describe mut macro and mutobj array.
* Fixed occurrences of "garbage allocator". :)Kaz Kylheku2013-12-101-4/+5
|
* Spellcheck.Kaz Kylheku2013-12-051-17/+17
|
* * HACKING: Added notes on generational garbage collection.Kaz Kylheku2012-04-141-0/+110
|
* * configure: Switch from _POSIX_C_SOURCE=2 to _XOPEN_SOURCE.Kaz Kylheku2012-04-101-4/+4
| | | | | | | | We will be relying on the gettimeofday function which only came into POSIX in 2001, but was in Unix long before then. * HACKING: Replace notes about -D_POSIX_C_SOURCE which are not true any more.
* * HACKING: Added note about register save areas, which can contributeKaz Kylheku2012-02-121-1/+3
| | | | to spurious retention.
* * HACKING: Grammar fixes. Expanded on lazy strings a little bit.Kaz Kylheku2011-10-291-35/+68
| | | | | Added something about mem_t *, and a few extra words here and there, including a blurb about a Valgrind debugging caveat.
* Fix section numbering mixup.Kaz Kylheku2011-10-101-2/+2
|
* * HACKING: Documented portability hacks for narrow wchar_t.Kaz Kylheku2011-10-101-1/+59
|
* * HACKING: Formatting.Kaz Kylheku2011-10-081-8/+10
|
* HACKING: Clarified that --vg-debug is also needed to turn on onKaz Kylheku2011-10-011-2/+4
| | | | the Valgrind support at run-time, in addition to building it in.
* * HACKING: Updated with debugging hints.Kaz Kylheku2011-09-301-4/+210
|
* Spelling.Kaz Kylheku2011-09-201-2/+2
|
* This should be under version control.Kaz Kylheku2011-09-011-0/+516