On Sunday, 6 December 2020 at 11:27:39 UTC, Max Haughton wrote:
ARC with a library will have overhead unless the compiler/ABI is changed e.g. unique_ptr in C++ has an indirection.

No, unique doesnt need indirection, neither does ARC, we put the ref count at a negative offset.

shared_ptr is a fat pointer with the ref count as a separate object to support existing C libraries, and make weak_ptr easy to implement. But no need for indirection.

The AST effectively is a high-level IR. Not a good one, but good enough. The system Walter has built shows the means are there in the compiler already.

I think you need a new IR, but it does not have to be used for code gen, it can point back to the ast nodes that represent ARC pointer assignments.

One could probably translate the one used in Rust, even.

Reply via email to