D on next-gen consoles and for game development

Paulo Pinto pjmlp at progtools.org
Tue May 28 10:27:31 PDT 2013


Am 28.05.2013 15:33, schrieb Steven Schveighoffer:
> On Sat, 25 May 2013 01:52:10 -0400, Manu <turkeyman at gmail.com> wrote:
>
>> What does ObjC do? It seems to work okay on embedded hardware
>> (although not
>> particularly memory-constrained hardware).
>> Didn't ObjC recently reject GC in favour of refcounting?
>
> Having used ObjC for the last year or so working on iOS, it is a very
> nice memory management model.
>
> Essentially, all objects (and only objects) are ref-counted
> automatically by the compiler.  In code, whenever you assign or pass a
> pointer to an object, the compiler automatically inserts retains and
> releases extremely conservatively.
>
> Then, the optimizer comes along and factors out extra retains and
> releases, if it can prove they are necessary.
>
> What I really like about this is, unlike a library-based solution where
> every assignment to a 'smart pointer' incurs a release/retain, the
> compiler knows what this means and will factor them out, removing almost
> all of them.  It's as if you inserted the retains and releases in the
> most optimized way possible, and it's all for free.
>
> Also, I believe the compiler is then free to reorder retains and
> releases since it understands how they work.  Of course, a
> retain/release is an atomic operation, and requires memory barriers, so
> the CPU/cache cannot reorder, but the compiler still can.
>...

I imagine Microsoft also does a similar thing with their C++/CX language 
extensions (WinRT handles).


More information about the Digitalmars-d mailing list