Analysis of D GC
Vladimir Panteleev via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 19 16:52:16 PDT 2017
On Monday, 19 June 2017 at 22:35:42 UTC, Dmitry Olshansky wrote:
> My take on D's GC problem, also spoiler - I'm going to build a
> new one soonish.
Looks like I'm not the only one itching to have a go at D's GC :)
This will very likely be my DConf 2018 project. However, I have
slightly different plans:
- The GC should be usable as a library (mainly to facilitate
testing).
- Support for all platforms D already supports from the start.
- Use design-by-introspection when applicable and
design-by-contract elsewhere to split the design into modular
components.
- Make the GC configurable (using policies) and swappable at
runtime. (No need to get clever, just treat previous
implementation's pools as opaque void[]).
- Support concurrency on Windows via anonymous memory-mapped
files.
- Support generational collection using write barriers
implemented through memory protection.
- Integrate existing GC work - don't reinvent the wheel.
- More, much more debugging facilities! Integrate Diamond and
Valgrind interoperability.
- Gray-marking and compacting.
- Still need to look at immix.
I have some past work that I'd like to integrate (an experimental
generational GC I wrote like 9 years ago for D1, Diamond, and
Valgrind integration I have in a fork somewhere.)
More information about the Digitalmars-d
mailing list