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/ylpaqhnuiczfgfpqj...@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

Reply via email to