Hacker News new | past | comments | ask | show | jobs | submit login

Another example is Rust's borrow checker, which has roots in substructural type system papers from decades earlier. Many academics considered substructural type systems dead (killed by GC, more or less) until Rust resurrected the idea by combining it with some new ideas from C++ of the time.



"with some new ideas from C++ of the time"

Could you elaborate on that?


I assume it's the deterministic, implicit, synchronous, single-use destructor.

Affine logic only says what you're able to do with a value, it doesn't say anything about what happens when that value goes out of scope.


Hmm, that's possible


Move semantics and rvalue references. It was clear that within C++11 there was a substructural type system struggling to get out.


I was going to say that Rust's destructive move is quite different from C++'s move semantics, but official docs disagree: "C++: references, RAII, smart pointers, move semantics, monomorphization, memory model" [0]

[0] https://doc.rust-lang.org/reference/influences.html




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

Search: