If I had my way
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sun Dec 11 08:21:52 PST 2011
On 12/11/11 9:14 AM, Chad J wrote:
> On 12/11/2011 08:15 AM, maarten van damme wrote:
>> ...
>>
>> I was only trying it "for the fun of it", not to be used seriously. D
>> should always have it's GC support built-in and have some functions to
>> control it's behaviour (core.memory). But I think that D, beeing a
>> systems programming language, should also be able to be used without GC.
>> I don't mean phobos to be writtin without a GC in mind but druntime
>> should be compilable with something like a -nogc flag that make it
>> usable without GC.
>>
>> There are a lot of users out there who think that a GC produces terribly
>> slow programs, big hangs while collecting,... (thank java for that.
>> Right now the java GC has been improved and it's extremely good but the
>> memory stays :p)
>> Letting them know that D can be run without GC can be a good point. If
>> they don't like it, they can turn it off.
>
> I think one thing that could would be (optional) reference counting for
> transitively atomic types. Of course, this is just another kind of
> garbage collection, but it is /deterministic/ and parallelizes well, and
> I bet this would open up a large amount of Phobos while the
> stop-the-world collector is offline, and with little or no code change.
I think the language has enough (in theory) and nearly enough (in
practice) expressiveness to implement reference counted classes in a
library, virtually transparently. I mean one could define a template
RefCounted (an extended version of what's now in std) such that this
pattern is possible:
// client code
class WidgetImpl {
...
}
alias RefCounted!WidgetImpl Widget;
Aside from using WidgetImpl in type relationships, using Widget would
transparently insert the appropriate reference counting without
otherwise interfering with normal WidgetImpl semantics.
Andrei
More information about the Digitalmars-d
mailing list