Swift does away with pointers == pervasive ARC

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 17 09:26:29 PDT 2014


On Tue, Jun 17, 2014 at 09:36:09PM +1000, Manu via Digitalmars-d wrote:
> On 17 June 2014 18:18, Walter Bright via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
> > On 6/16/2014 10:02 PM, Manu via Digitalmars-d wrote:
> >
> >> I can't imagine exceptions would appear in hot code very
> >> often/ever?
> >
> >
> > I've tried to explain this to you for months. You don't believe my
> > explanations, we just go round in circles. I strongly suggest you
> > write some code with shared_ptr<T> and try it out. Disassemble the
> > result. Benchmark it. Use Microsoft C++, so I won't be sabotaging
> > your results and it won't be because I write crappy compilers :-)
> 
> ARC is useless without compiler support. If we can't experiment with
> the compiler's ability to eliminate redundant RC related work, then we
> aren't 'experimenting' with anything of interest.
> We agree ARC isn't acceptable without compiler support. That's never
> been on debate.
> I have no way of testing whether the compiler is able to produce
> acceptable results in C or D today. shared_ptr will demonstrate what
> we already know is not acceptable, not whether the results of compiler
> support for RC optimisation is satisfactory.
> 
> I believe your explanations, but that's not where I'm hung up. In most
> cases I can visualise, there is significant opportunity for the
> compiler to eliminate redundant work, and in the remaining cases, I
> can imagine numerous very simple approaches to remove the bumps from
> hot code without interfering very much at all.
[...]

Perhaps the way to convince Walter, is to fork dmd on github, check it
out, and implement ARC in your fork (to whatever extent is necessary for
a first, possibly very crude, demonstration)? It doesn't have to work
100%, it doesn't even have to pass the test suite or compile the full D
language, it just has to do enough to prove that the compiler is capable
of automatically making performance-critical ARC optimizations on
whatever benchmark you choose to use.

This would add a lot of substance to all the hot air we've been pumping
at each other every time a GC/ARC-related thread comes up.


T

-- 
If it's green, it's biology, If it stinks, it's chemistry, If it has numbers it's math, If it doesn't work, it's technology.


More information about the Digitalmars-d mailing list