Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

With the small difference that Swift compiler is RC aware and optimizes them away, unlike Rust, first point.

Second point, exactly because it is opaque, its ergonomics are way better than Rust code.

No Rc, Arc, RefCell, clone(), Pin, pollution across the source code.



Optimises what away exactly?


The reference counting code that can be proven to be unnecessary, given the execution flow of the code.

Rustc doesn't possess such knowledge about library types.


Rust is capable of eliminating unnecessary count increments and decrements for Rc fairly often. The compiler doesn't usually need specific knowledge -- if there is a +1 and then a -1 LLVM is smart enough to cancel that out on its own. I'd actually be curious to see examples where it doesn't.


Me too, because that is the usual hoping the compiler does the right thing, tied to LLVM, and not part of language semantics.


I mean, how often are you cloning an Rc? It’s not like c++ where passing a shared_ptr to a function is going to copy it. Most of the time you’re going to move it.


In GUI designers, everywhere.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: