Std Phobos 2 and logging library?
Robert Jacques
sandford at jhu.edu
Fri Apr 10 22:05:31 PDT 2009
On Fri, 10 Apr 2009 23:04:16 -0400, Leandro Lucarella <llucax at gmail.com>
wrote:
> I hope I can come up with something useful with my thesis (improving D's
> GC) and I can contribute that. Right now all my energies are focused on
> that, and I'm very close to the point to finally start playing with
> alternate implementations.
>
> BTW, is there any real interest in adding some more power to the GC
> implementator to allow some kind of moving or generational collector?
Yes.
> Here are some good starting points on how to allow better GC support in
> D:
> http://d.puremagic.com/issues/show_bug.cgi?id=679
I think this should be less a spec issue and more a library issue and
core.memory seems to already have a BlkAttr.NO_MOVE, which covers memory
pinning.
> http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=35426
Well, making the GC type aware/semi-precise (i.e. providing support for
moving/copying collectors) seems like the most important change, i.e.
static void* malloc(size_t sz, uint ba = 0);
to
static void* malloc(T)(uint ba = 0);
static void* malloc(T:T[])(uint ba = 0);
The change to support concurrent GCs, effects both performance and code
gen significantly. Also, if D's thread model supports thread-local heaps,
the need for a concurrent GC is vastly reduced (its only a benefit to the
shared heaps (mutable and immutable), while most objects would are on the
thread-local heaps).
On that note, support for per thread GCs in general is another major
change. i.e.:
GC.malloc!(T)();
to
Thread.getThis.gc.malloc!(T)(); // Alternatively use thread local storage.
Even without a locality guarantee, this allows for concurrent allocation
and (I think) better D DLL behaviour since you don't end up with two
separate heaps which don't know about each other.
> Anyway, if you are interested in my progress, I have a blog[1] where
> I write almost everything I do related to the subject. The blog it's in
> Planet D, but Planet D seems to be broken =/
>
> [1] http://proj.llucax.com.ar/blog/dgc/blog
P.S. Thanks for the blog. (I have been following it for a while now)
More information about the Digitalmars-d
mailing list