What's wrong with D's templates?

grauzone none at example.net
Fri Dec 25 11:52:13 PST 2009


Walter Bright wrote:
> grauzone wrote:
>>> It matters because Java is used a lot in multithreaded applications, 
>>> and it is gc based. The gc is not a disastrous problem with it.
>>
>> For one, Java has an infinitely better GC implementation than D. Yeah, 
>> this isn't a problem with the concept or the language specification, 
>> but it matters in reality.
> 
> I thought we were talking about a fundamental issue of concept and 
> language specification.

Yes, but what matters is what finally can be implemented. And my initial 
question was what advantages immutability would offer. Of course that 
includes the implementation, not only theoretical possibilities. 
Actually, I couldn't care less about theory. The question is: will this 
and that be implemented in a foreseeable time?

Those concepts and the limits of the implementation environment both set 
the frame of what will actually be possible. For example, saying D could 
just use the same GC algorithms as Java probably isn't going to work, 
because D has to deal with C compatibility, doesn't use a VM, etc... In 
the same way, thread local data by default and having a different set of 
shared types may provide some implementation opportunities that wouldn't 
exist in Java.

> 
>> There's no way a shared GC is ever going to be scalable with 
>> multicores. If I'm wrong and it can be made scalable, I'd like to see 
>> it. Not just in theory, but in D.
> 
> I believe there's plenty that can be achieved with it first. D has a 
> fairly simple GC implementation in it right now, probably early 90's 
> technology. It could be pushed an awful lot further.
> 
> If you want to help out with it, you're welcome to.

I sure would if I could, because GC performance gets on my nerves. Also 
I believe there are reasons why anyone didn't contribute a better GC 
yet. For one, most extended GC algorithms seem to require compiler 
support (precise type information, write barriers). And then D is bound 
to C, which complicates things further.

By the way how is dsimcha's precise GC patch coming?



More information about the Digitalmars-d mailing list