Another major update: On Nim devel destructors are now scope based, not function based. This brings Nim's semantics closer to C++/Rust and is a key enabler for more optimizations. Still left to do:
* Bugfixes, as usual. * Better inlining for the generated assignment operators and destructors. * Elide wasMoved+destroy pairs (though a decent C optimizer should do it too for us). Best time for the "binary trees" benchmark on my old notebook: > 12.6s (ARC) vs 12.1s (manual) So there is still room for improvement. :-)
