| 19 | | 1. Extract PMC_Allocator from gc_ms into standalone class. |
| 20 | | a. PoolAllocator for single size headers already extracted. |
| 21 | | b. Just create something like |
| 22 | | {{{ |
| 23 | | class PMC_Allocator { |
| 24 | | has @!allocators; |
| 25 | | |
| 26 | | method allocate_pmc_attributes(size_t size) { |
| 27 | | return self.allocators[size % sizeof (void*)].allocate(); |
| 28 | | } |
| 29 | | } |
| 30 | | }}} |
| 31 | | |
| 32 | | 2. Implement proper string allocating/compacting. Probably by extracting gc_ms stuff into {{{StringAllocator}}} class. |
| 33 | | 3. Implement TMS.get_info method. |
| 34 | | 4. Move src/gc/list.c guts into macros inside src/gc/list.h. They are always in hot-path and we can easily win some performance there. |
| | 19 | 1. Implement proper string allocating/compacting. Probably by extracting gc_ms stuff into {{{StringAllocator}}} class. |
| | 20 | 2. Implement .get_info method. |
| | 21 | 3. Move src/gc/list.c guts into macros inside src/gc/list.h. They are always in hot-path and we can easily win some performance there. |