-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Soundness conflicts #379
Comments
I am pretty sure I saw another case of this recently, but forgot where... |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
This thread is not meant to discuss concrete soundness conflicts, only to collect them. Discussing them all in the same thread would be a big mess.^^ I've opened an issue for the TLS discussion: #484. |
Sometimes it happens that two unsafe-using libraries are sound in isolation, but unsound when combined. Each time that happens, Rust has to decide which side to consider sound. Ultimately this boils down to precisely specifying the safety invariants of all our types -- but doing that requires something like RustBelt, so it is hard to have that discussion in full generality. (Also that would involve T-types at least as much as WG-UCG / T-opsem.)
But meanwhile, it would be good to collect the cases of these conflicts here that we find out there in the wild.
The most famous case of this is of course leakpocalypse:
Rc
vs pre-Rust-1.0-scoped-threads, which famously got decided in favor ofRc
(andmem::forget
). Another case is that withoutunion
andManuallyDrop
,josephine
would be sound. Again the resolution for the ecosystem is clearly in favor ofunion
s andManuallyDrop
.The point of this thread is not to discuss any of these conflicts and figure out which side we want to bless. It is solely to collect the known cases in a central location.
Pin
is seriously under-specified and probably has quite a few of these conflicts, here is one.Drop
type" vs a pattern that assumes that exactly that does not happen (coming up in this RFC).The text was updated successfully, but these errors were encountered: