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

Implementing (or removing) Drop on a type is a breaking change for that type's users, not the language as a whole. And only if you actually write a trait that depends on types directly implementing Drop[0].

Linux breaks internal compatibility far more often than people add or remove Drop implementations from types. There is no stability guarantee for anything other than user-mode ABI.

[0] AFAIK there is code that actually does this, but it's stuff like gc_arena using this in its derive macro to forbid you from putting Drop directly on garbage-collectable types.




> is a breaking change _for that type's users_, not the language as a whole.

And yet the operating mantra...the single policy that trumps all others in Linux kernel development...

is don't break user space.


Rust compiler upgrades being backwards incompatible has nothing to do whatsoever with keeping userspace ABI compatible.

GCC also occassionally breaks compability with the kernel, btw.


> Linux breaks internal compatibility far more often than people add or remove Drop implementations from types. There is no stability guarantee for anything other than user-mode ABI.

I think that's missing the point of the context though. When Linux breaks internal compatibility, that is something the maintainers have control over and can choose not to do. When it happens to the underlying infrastructure the kernel depends on, they don't have a choice in the matter.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: