On Tuesday, 4 February 2014 at 02:57:00 UTC, Andrei Alexandrescu
wrote:
On 2/3/14, 5:36 PM, Adam Wilson wrote:
You still haven't dealt with the cyclic reference problem in
ARC. There
is absolutely no way ARC can handle that without programmer
input,
therefore, it is simply not possible to switch D to ARC
without adding
some language support to deal with cyclic-refs. Ergo, it is
simply not
possible to seamlessly switch D to ARC without creating all
kinds of
havoc as people now how memory leaks where they didn't before.
In order
to support ARC the D language will necessarily have to
grow/change to
accommodate it. Apple devs constantly have trouble with
cyclic-refs to
this day.
The stock response: weak pointers. But I think the best
solution is to allow some form of automatic reference counting
backed up by the GC, which will lift cycles.
Andrei
This is the approach taken by Cedar on the Mesa system.
"On Adding Garbage Collection and
Runtime Types to a Strongly-Typed,
Statically-Checked, Concurrent Language"
http://www.textfiles.com/bitsavers/pdf/xerox/parc/techReports/CSL-84-7_On_Adding_Garbage_Collection_and_Runtime_Types_to_a_Strongly-Typed_Statically-Checked_Concurrent_Language.pdf
--
Paulo