On 4/17/14, 10:09 AM, Walter Bright wrote:
On 4/17/2014 2:32 AM, Paulo Pinto wrote:
Similar approach was taken by Microsoft with their C++/CX and COM
integration.
So any pure GC basher now uses Apple's example, with a high
probability of not
knowing the technical issues why it came to be like that.
I also wish to reiterate that GC's use of COM with ref counting contains
many, many escapes where the user "knows" that he can just use a pointer
directly without dealing with the ref count. This is critical to making
ref counting perform.
But the escapes come with a huge risk for memory corruption, i.e. user
mistakes.
Also, in C++ COM, relatively few of the data structures a C++ program
uses will be in COM. But ARC would mean using ref counting for EVERYTHING.
As a COM programmer a long time ago, I concur.
Using ARC for *everything* means slow and bloat, unless Manu's
assumption that a sufficiently smart compiler could eliminate nearly all
of that bloat is possible.
Which I am not nearly as confident of.
Well there's been work on that. I mentioned this recent paper in this
group: http://goo.gl/tavC1M, which claims RC backed by a cycle collector
can reach parity with tracing. Worth a close read.
Andrei