Speaking of GC improvements, I googled around a bit and found this
thread from 2 years ago:

        
http://www.digitalmars.com/d/archives/digitalmars/D/Is_there_a_modern_GC_for_D_105967.html

Especially interesting is this paper:

        Nonintrusive Cloning Garbage Collector with Stock Operating
        System Support.
                http://www.cs.purdue.edu/homes/grr/snapshot-gc.ps

Has anything been done along these lines since that time? Seems like
this particular GC algorithm is exactly the kind we need for D. It's a
conservative mark-and-sweep algo with a very low overhead(*), mark phase
concurrent with mutator thread(s), and lazy incremental sweeping at
allocation time.  Synchronization is automatically done by default OS
kernel-space mechanisms (copy on write memory pages).

More to the point, how easy/hard is it to switch between GCs in the
current D implementation(s)? I think it would be helpful if these kinds
of experimental GCs were available in addition to the current default
GC, and people can play around with them and find out which one(s) are
the cream of the crop. Otherwise we're just bottlenecked at a small
number of people who can actually play with GC algos for D -- which
means improvements will be slow.


(*) True on *nix systems anyway, but judging from comments in
that thread, Windoze also was acquiring equivalent functionality -- and
this being 2 years ago, I'm assuming it's available now.


--T

Reply via email to