Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | * HACKING: Updating generational GC notes in light of changes. | Kaz Kylheku | 2014-03-29 | 1 | -34/+43 |
| | |||||
* | Fix a bug arising from putting generation 1 objects into the | Kaz Kylheku | 2014-03-27 | 1 | -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 Kylheku | 2013-12-10 | 1 | -4/+5 |
| | |||||
* | Spellcheck. | Kaz Kylheku | 2013-12-05 | 1 | -17/+17 |
| | |||||
* | * HACKING: Added notes on generational garbage collection. | Kaz Kylheku | 2012-04-14 | 1 | -0/+110 |
| | |||||
* | * configure: Switch from _POSIX_C_SOURCE=2 to _XOPEN_SOURCE. | Kaz Kylheku | 2012-04-10 | 1 | -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 contribute | Kaz Kylheku | 2012-02-12 | 1 | -1/+3 |
| | | | | to spurious retention. | ||||
* | * HACKING: Grammar fixes. Expanded on lazy strings a little bit. | Kaz Kylheku | 2011-10-29 | 1 | -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 Kylheku | 2011-10-10 | 1 | -2/+2 |
| | |||||
* | * HACKING: Documented portability hacks for narrow wchar_t. | Kaz Kylheku | 2011-10-10 | 1 | -1/+59 |
| | |||||
* | * HACKING: Formatting. | Kaz Kylheku | 2011-10-08 | 1 | -8/+10 |
| | |||||
* | HACKING: Clarified that --vg-debug is also needed to turn on on | Kaz Kylheku | 2011-10-01 | 1 | -2/+4 |
| | | | | the Valgrind support at run-time, in addition to building it in. | ||||
* | * HACKING: Updated with debugging hints. | Kaz Kylheku | 2011-09-30 | 1 | -4/+210 |
| | |||||
* | Spelling. | Kaz Kylheku | 2011-09-20 | 1 | -2/+2 |
| | |||||
* | This should be under version control. | Kaz Kylheku | 2011-09-01 | 1 | -0/+516 |