-
Notifications
You must be signed in to change notification settings - Fork 274
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
Clarify some of the language around marking traits safe/unsafe. #268
Merged
JohnTitor
merged 1 commit into
rust-lang:master
from
yaymukund:clarify-trait-safety-language
May 11, 2021
Merged
Clarify some of the language around marking traits safe/unsafe. #268
JohnTitor
merged 1 commit into
rust-lang:master
from
yaymukund:clarify-trait-safety-language
May 11, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
yaymukund
commented
May 11, 2021
Comment on lines
+130
to
+136
`Send` and `Sync` are marked unsafe because thread safety is a *fundamental | ||
property* that unsafe code can't possibly hope to defend against in the way it | ||
could defend against a buggy `Ord` implementation. Similarly, `GlobalAllocator` | ||
is keeping accounts of all the memory in the program and other things like | ||
`Box` or `Vec` build on top of it. If it does something weird (giving the same | ||
chunk of memory to another request when it is still in use), there's no chance | ||
to detect that and do anything about it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This second paragraph is unchanged, I just split it out for readability.
JohnTitor
approved these changes
May 11, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice improvement, thanks!
GuillaumeGomez
added a commit
to GuillaumeGomez/rust
that referenced
this pull request
May 12, 2021
Update books ## nomicon 4 commits in 8551afbb2ca6f5ea37fe58380318b209785e4e02..55de6fa3c1f331774da19472c9ee57d2ae9eb039 2021-04-01 21:58:50 +0900 to 2021-05-12 00:31:01 +0900 - Clarify some of the language around marking traits safe/unsafe. (rust-lang/nomicon#268) - Use pointer 'add' instead of 'offset' (rust-lang/nomicon#265) - Adjust Vec to build on stable Rust (rust-lang/nomicon#223) - Update link to c++ atomic ordering docs (rust-lang/nomicon#264) ## reference 3 commits in d23f9da8469617e6c81121d9fd123443df70595d..5aa457bf1b54bd2cd5d4cf49797f29299bdf89a7 2021-04-28 11:16:44 -0700 to 2021-05-05 08:39:22 -0700 - Explicitly state result of compound assignment (rust-lang/reference#1013) - Adjust the definition of `target_family` (rust-lang/reference#1006) - Fix typo in `Traits` (rust-lang/reference#1012) ## book 2 commits in 50dd06cb71beb27fdc0eebade5509cdcc1f821ed..55a26488ddefc8433e73a2e8352d70f7a5c7fc2b 2021-04-23 13:21:54 -0500 to 2021-05-09 12:03:18 -0500 - Past-tensify "lead" -> "led" (rust-lang/book#2717) - Merge pull request rust-lang/book#2718 from rust-lang/update-rustc ## rust-by-example 2 commits in e0a721f5202e6d9bec0aff99f10e44480c0da9e7..5f8c6da200ada77760a2fe1096938ef58151c9a6 2021-04-27 09:32:15 -0300 to 2021-04-29 08:08:01 -0300 - Fix Typo in LRBE section; closes rust-lang/rust-by-example#1434 (rust-lang/rust-by-example#1437) - Add some tests to cargo/test.md. Partially addresses rust-lang/rust-by-example#1304 (rust-lang/rust-by-example#1438) ## rustc-dev-guide 3 commits in e72b43a..1e6c7fb 2021-04-27 12:35:37 -0700 to 2021-05-10 13:38:24 +0900 - Unified CPU Requirements (rust-lang/rustc-dev-guide#1126) - add 'waiting-for-review' incantation to main contrib page (rust-lang/rustc-dev-guide#1124) - Link to Zulip search for finding the most recent check-in (rust-lang/rustc-dev-guide#1118)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When I initially read this, I thought it was strange you'd want to mark
Send
andSync
asunsafe
if "unsafe code can't possibly hope to defend against [thread safety]".Here, I've attempted to clarify.