On Tuesday, 17 June 2014 at 09:10:14 UTC, Walter Bright wrote:
On 6/17/2014 1:59 AM, Nick Sabalausky wrote:

Oh, I totally understand where it's coming from. I'm trying to point out that ARC is not a magic zero-cost system. Its costs are SUBSTANTIAL. But in order to understand those costs, it is necessary to understand how exception handling works.

It is not (only) about cost, it is about determinism. Exceptions are on the error recovery path, so they are less important to be deterministic.

What is really critical is not that the execution time of such or such function, but the moment when it is called. And on the normal execution path.

This is what manual memory management (and, to a degree, ARC) and the GC fails to do: determinism of the calls on the normal execution path (and in the call of finalizers).

Yes, both ARC and manual memory management may be non-deterministic, but not on the normal execution path and not with respect to the calls (a malloc is nedeterministic, but its call is; you could always statically allocate beforehand).

Reply via email to