RCArray is unsafe
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 3 10:48:35 PST 2015
On 3/3/15 9:00 AM, Zach the Mystic wrote:
> On Tuesday, 3 March 2015 at 16:31:07 UTC, Andrei Alexandrescu wrote:
>>> I was dazzed, but I'm not anymore. I wrote my concern here:
>>>
>>> http://forum.dlang.org/post/ylpaqhnuiczfgfpqjuww@forum.dlang.org
>>
>> There's a misunderstanding here. The object being assigned keeps a
>> trailing list of past values and defers their deallocation to
>> destruction. -- Andrei
>
> So you need an extra pointer per instance?
Yah, or define your type to be single-assignment (probably an emerging
idiom). You can massage the extra pointer with other data thus reducing
its cost.
> Isn't that a big price to
> pay? Is the only problem we're still trying to solve aliasing which is
> not recognized as such and therefore doesn't bump the refcounter like it
> should? An extra pointer would be overkill for that. Isn't it better to
> just recognize the aliasing when it happens?
It's all tradeoffs. This has runtime overhead. A static analysis would
have the challenges of being permissive enough, cheap enough, not add
notational overhead, etc. etc.
Andrei
More information about the Digitalmars-d
mailing list