4 ms·
"Good language features for value types," while retaining memory safety, means at least one of these things: * Boxing anything you take a reference directly to
by Rusky 9y ago
"Good language features for value types," while retaining memory safety, means at least one of these things:
* Boxing anything you take a reference directly to
* Forbidding sum types and complicating the GC to allow interior pointers
* Forbidding references to value types
* A borrow checker
Guess which one is most flexible, and novel in Rust.
- pjmlp 9y agoA language like Modula-3 doesn't suffer from those issues. We only don't have it thanks to Compaq killing the project after acquiring DEC Olivetti. Politics as usual. Rust ideas come from Cyclone and ATS, it is not novel in Rust. The borrow checker still is pretty much WIP, that the NLL changes will surely improve, but don't not yet solve all ergonomic problems.
- Rusky 9y agoModula-3 either uses one of those techniques, or is not memory safe. (Looks like primarily the first one- manual deallocation is unsafe and it relies on GC for the rest?) Cyclone and ATS do not have Rust's combination of ownership and borrowing.