RFC: reference counted Throwable

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Fri Sep 19 21:43:01 PDT 2014


On 9/19/14, 7:20 PM, Walter Bright wrote:
> On 9/19/2014 6:48 PM, Andrei Alexandrescu wrote:
>> On 9/19/14, 6:18 PM, Walter Bright wrote:
>>> Having a compiler switch to change the behavior of every module in
>>> incompatible ways would be a disastrous balkanization. It has to be done
>>> in such a way that the ARC and the existing exceptions can coexist.
>>
>> Could you please elaborate why the disaster? -- Andrei
>>
>
> 1. Every library for D will have to come in two versions. One which
> works, and the other is likely untested. This will divide the D
> community in half.

I understand where you're coming from. And you're right that we're 
looking at an important change - as big as -m64 vs. -m32 or porting to a 
new platform. It's big. But it's needed, soon. And it would be, it seems 
to me, a mistake to approach this big change as a small change that we 
can sneak in.

This judgment - that RC vs. GC would balkanize the community - has 
become a prejudice that is worth revisiting. Just trotting it out again 
won't do.

> 2. RC and GC engender different styles of programming. The idea that one
> can successfully switch between them with merely a compiler switch is a
> fantasy. You cannot write non-trivial programs that function well and
> pay no attention to how memory management is done.

I think we're at a point where we owe it to ourselves to consider 
realizing the fantasy.


Andrei



More information about the Digitalmars-d mailing list