Std Phobos 2 and logging library?

Leandro Lucarella llucax at gmail.com
Sun Apr 12 10:13:09 PDT 2009


Robert Jacques, el 11 de abril a las 01:05 me escribiste:
> 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.

This is just a flag. You need extra information for knowing actually when
to set that flag. And for that, you need some type information. A cell can
be moved when you know everything pointing to it is an actual pointer, so
you can safely overwrite it with the new location.

> >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,

Exactly.

> 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).

I think I'll target D1 for now. The reasons are:
* Stability
* Free compilers availability (you know what kind of free I'm talking
  about =)
* Programs availability (I'm trying to gather programs to make a benchmark
  suite, without much success unfortunately, only Leonardo Maffi answered
  my request for examples[1], and what I need the most are *real* programs)

So for know, I'm not considering anything of that. The only thing I'm
vaguely considering is thread-specific heaps, to allow lock-free
allocation. This has some disadvantages too, so it's low priority for me
right now.

[1] http://proj.llucax.com.ar/blog/dgc/blog/post/-1382f6a3

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
FALTAN 325 DIAS PARA LA PRIMAVERA
	-- Crónica TV



More information about the Digitalmars-d mailing list