If I had my way
Chad J
chadjoan at __spam.is.bad__gmail.com
Sun Dec 11 10:17:48 PST 2011
On 12/11/2011 11:21 AM, Andrei Alexandrescu wrote:
> On 12/11/11 9:14 AM, Chad J wrote:
>>
>> 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
This is good. So stick it in the runtime and make the compiler emit
RefCounted!___ templates whenever it finds a transitively atomic type.
This can be done alongside the existing garbage collector.
Then we can benchmark different combinations of memory management
strategies.
Two compiler flags can work in tandem:
-nogc
-norefcount
(Turn them both off if you really want to break Phobos.)
More information about the Digitalmars-d
mailing list