This is a port of the SDC garbage collector to D code that builds with DMD/LDC/gdc.
The idea is to extract the GC portions of the SDC runtime (and everything needed) in order to be able to build using standard compilers.
Linux x64 (so far)
DMD master (2.111 base)
- d.sync is ported, uses core.atomic for building locks. Unittests passing.
- d.gc modules are in progress (29/37):
- allocclass.d
- arena.d
- base.d
- bin.d
- bitmap.d
- block.d
- capi.d
- collector.d
- cpu.d
- emap.d
- extent.d
- fork.d
- global.d
- heap.d
- hooks.d - stubs added, need to fill these in.
- memmap.d
- page.d
- proc.d
- range.d
- rbtree.d
- region.d
- ring.d
- rtree.d
- scanner.d
- signal.d
- size.d
- sizeclass.d
- slab.d
- spec.d
- stack.d
- tbin.d
- tcache.d
- thread.d
- time.d
- tstate.d
- types.d
- util.d
NOTE: The above being checked doesn't mean it's fully tested. Just that it passes unittests. Integration tests will need to be ported to ensure everything works as expected.
- Finish porting all GC modules
- Integration tests
Symmetry Investments is sponsoring this work.