(no title)
jjmarr | 6 days ago
You cannot change anything that would affect the class layout of something in the STL. For templated functions where the implementation is in the header, ODR means you can't add optimizations later on.
Maybe this was OK in the 90s when companies deleted the source code and laid off the programmers once the software was done, but it's not a feature Rust should ever support or guarantee.
The "stable ABI" is C functions and nothing else for a very good reason.
pizlonator|6 days ago
In lots of domains, having a language that doesn't change very much, or that only changes very carefully with backcompat being taken super seriously, is more important than the memory safety guarantees Rust offers.
jjmarr|6 days ago
As a C++ developer, I regularly deal with people that think creating a compiled object file and throwing away the source code is acceptable, or decide to hide source code for "security" while distributing object files. This makes my life hell.
Rust preventing this makes my life so much better.
SkiFire13|6 days ago
PunchyHamster|5 days ago
Gigachad|6 days ago
ozgrakkurt|5 days ago
dpc_01234|6 days ago
nicoburns|5 days ago
1. Have the stable ABI be opt-in similarly to how the C ABI is opt-in in Rust (`#[repr(stable)]` or similar)
2. Have the stable ABI be versioned. So it would actually be `#[repr(stable_2026)]` or whatever
pjmlp|6 days ago