Swift does away with pointers == pervasive ARC
via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 17 12:45:40 PDT 2014
On Tuesday, 17 June 2014 at 19:28:26 UTC, H. S. Teoh via
Digitalmars-d wrote:
> Why wouldn't it? I thought that was the whole point of Andrei's
> work on
> std.allocator, specifically, a pool allocator. You allocate a
> pool at
> the beginning of an iteration, and it can be as simple as a
> bump-the-pointer allocator inside the pool, then at the end of
> the
> iteration you free the entire pool all at once.
One key difference is that iOS is a controlled framework and
Apple ARC presumes that you only allocate a modest amount of ARC
objects per event. So you have to take special care if you
allocate lots of memory per event (create your own pools).
AFAIK, Apple-style ARC is only safe to use if you don't treat it
as an optional library solution. The AutoReleasePool does not
free the entire pool, only the ones that have a retain-count of
1. The basic idea is that you don't have to match up the initial
allocation-retain() with a release(). So I believe the codegen
only have to do retain()/release() when an ARC object might
escape the "event handler" call chain…
Sure, you can do it for D, but you have to deal with additional
issues (compared to GC).
More information about the Digitalmars-d
mailing list