-
Notifications
You must be signed in to change notification settings - Fork 530
some asm block flags also mean there can be no fences #1413
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
This is correct. Only "write" asm has the effects of a compiler fence. |
I realized Are there any others? Or can everything else still do synchronization? |
|
Oh I see. That's not mentioned in the docs either, so I added it. |
I like this! It definitely cleared some stuff up for me.
It seems like it's mentioned further down:
But I think also having it in the |
I think it's probably better to move it next to the definition of |
All right, done that. |
@ehuss as far as I can see, this is ready to land. |
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.
Thanks! I was waiting for @Amanieu, but it seems like they are ok with it. If there are any changes needed, someone can follow up with another PR.
Update books ## rust-lang/reference 4 commits in 16fd3c06d9e558dae2d52000818274ae70c9e90a..cd8193e972f61b92117095fc73b67af767b4d6bc 2023-11-04 17:19:39 UTC to 2023-10-30 16:04:52 UTC - Guarantee that raw pointer conversions preserve slice element count (rust-lang/reference#1417) - some asm block flags also mean there can be no fences (rust-lang/reference#1413) - Guarantee `char` layout (rust-lang/reference#1401) - Doc: Add the RISC-V stabilized target features (rust-lang/reference#1415) ## rust-lang/rust-by-example 3 commits in 6709beeb7d0fbc5ffc91ac4893a24434123b9bfa..311b84962016b28c75525c86e7b3f49fd9101a39 2023-10-31 18:32:09 UTC to 2023-10-31 18:30:39 UTC - Fixed explanation mistake in comment (rust-lang/rust-by-example#1761) - Fix typos (rust-lang/rust-by-example#1759) - docs(9.2): fix typo (rust-lang/rust-by-example#1754) ## rust-lang/rustc-dev-guide 6 commits in b0ee9ec..77dbe57 2023-11-06 16:14:34 UTC to 2023-10-29 17:16:02 UTC - add a new type system invariant (rust-lang/rustc-dev-guide#1822) - Update some outdated descriptions of coverage instrumentation (rust-lang/rustc-dev-guide#1809) - Add some documentation for unsizing (rust-lang/rustc-dev-guide#1817) - Bibliography: fixing author of "You Can't Spell Trust Without Rust" (rust-lang/rustc-dev-guide#1815) - remove change-id from sample build configuration (rust-lang/rustc-dev-guide#1813) - Update name of "active" features to "unstable" (rust-lang/rustc-dev-guide#1814)
Rollup merge of rust-lang#117639 - rustbot:docs-update, r=ehuss Update books ## rust-lang/reference 4 commits in 16fd3c06d9e558dae2d52000818274ae70c9e90a..cd8193e972f61b92117095fc73b67af767b4d6bc 2023-11-04 17:19:39 UTC to 2023-10-30 16:04:52 UTC - Guarantee that raw pointer conversions preserve slice element count (rust-lang/reference#1417) - some asm block flags also mean there can be no fences (rust-lang/reference#1413) - Guarantee `char` layout (rust-lang/reference#1401) - Doc: Add the RISC-V stabilized target features (rust-lang/reference#1415) ## rust-lang/rust-by-example 3 commits in 6709beeb7d0fbc5ffc91ac4893a24434123b9bfa..311b84962016b28c75525c86e7b3f49fd9101a39 2023-10-31 18:32:09 UTC to 2023-10-31 18:30:39 UTC - Fixed explanation mistake in comment (rust-lang/rust-by-example#1761) - Fix typos (rust-lang/rust-by-example#1759) - docs(9.2): fix typo (rust-lang/rust-by-example#1754) ## rust-lang/rustc-dev-guide 6 commits in b0ee9ec..77dbe57 2023-11-06 16:14:34 UTC to 2023-10-29 17:16:02 UTC - add a new type system invariant (rust-lang/rustc-dev-guide#1822) - Update some outdated descriptions of coverage instrumentation (rust-lang/rustc-dev-guide#1809) - Add some documentation for unsizing (rust-lang/rustc-dev-guide#1817) - Bibliography: fixing author of "You Can't Spell Trust Without Rust" (rust-lang/rustc-dev-guide#1815) - remove change-id from sample build configuration (rust-lang/rustc-dev-guide#1813) - Update name of "active" features to "unstable" (rust-lang/rustc-dev-guide#1814)
@Amanieu I wasn't sure about the
readonly
part of this. An acquire read is not entirely a read-only operation in terms of how it affects the machine state, e.g. it cannot be arbitrarily reordered with other reads. So I assumereadonly
blocks cannot really have "acquire" effects?