@clacke the refcount still has to be done, of course - on uniprocessor refcounted systems like early Smalltalk it was noted that refcounts can consume 30% of runtime, as well as hitting random unbounded pauses when a huge tree of objects has to be freed at once - but clang can do a fair bit of static deduction about liveness, and automatically insert refcounts where that runs out, which as far as i can tell basically gives the effect of deferred and coalesced refcounting, which can eliminate something like 99% of refcount ops to begin with