-
Notifications
You must be signed in to change notification settings - Fork 472
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
type-layout: be more specific about 32-bit alignments #1393
Merged
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
The rust-reference implies that 64-bit types are aligned to 32-bit for platforms with 32-bit addresses. This is not necessarily correct. Fix the wording. Note that there is no general rule how data-types greater than the native address size are aligned. On most Unix'y systems, they use the native alignment of the platform. However, the Windows ABI aligns them to their size (up to at least 64-bit). There are advantages for either of those decisions. But we should at least make clear that there is no fixed rule for 32-bit platforms. Signed-off-by: David Rheinsberg <david@readahead.eu>
tgross35
approved these changes
Aug 14, 2023
Any chance we can get this in? The current wording is simply wrong for Windows platforms, and I would love to see this fixed. |
ehuss
approved these changes
Apr 3, 2024
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!
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Apr 9, 2024
Update books ## rust-lang/book 23 commits in 19c40bfd2d57641d962f3119a1c343355f1b3c5e..3131aa4642c627a24f523c82566b94a7d920f68c 2024-04-05 22:09:59 UTC to 2024-03-27 18:14:05 UTC - Correct the description of Listing 5-6 (rust-lang/book#3878) - Minor text improvements (rust-lang/book#3790) - Update full code reference main.rs in ch20-03 (rust-lang/book#3857) - Make Note text in ch. 20 consistent with other notes (rust-lang/book#3876) - Consistency fix: start note sentence with a capital (rust-lang/book#3652) - Update README.md (rust-lang/book#3656) - Update panic! formatting style for Guess example (rust-lang/book#3767) - Small correction in ch13-01 (rust-lang/book#3780) - Fix a wording typo in ch07 (rust-lang/book#3694) - Fix a typo: remove an extra 's' from ch. 18.01 (rust-lang/book#3874) - Remove redundant words (rust-lang/book#3672) - Fix rust-lang#3703 (rust-lang/book#3704) - Update loop to Result: 10 (rust-lang/book#3711) - Added "--" between run and args on ch12-03-l12 (rust-lang/book#3726) - Add maintenance time section in appendix-07-nightly-rust.md (rust-lang/book#3859) - Update the link to the farsi translation repository (rust-lang/book#3839) - Update README to use --locked for installing mdbook (rust-lang/book#3830) - Reword "`union`s" to "a `union`" (rust-lang/book#3738) - Fix two typos in 04-03 and 07-03 (rust-lang/book#3849) - Fix typo in Chapter 7 Section 3 (rust-lang/book#3743) - Improve ch03-05-control-flow collection looping wording (rust-lang/book#3758) - Fix missing column separator (rust-lang/book#3855) - Update compiler message (rust-lang/book#3856) ## rust-lang/edition-guide 3 commits in 98b33e9a441457b0a491fe1be90e7de64eafc3e5..eb3eb80e106d03250c1fb7c5666b1c8c59672862 2024-03-27 20:44:27 UTC to 2024-03-26 19:26:15 UTC - some mdbook conveniences (rust-lang/edition-guide#297) - typo (rust-lang/edition-guide#296) - Clean up the `editions/index.md` page (rust-lang/edition-guide#294) ## rust-embedded/book 1 commits in 2e95fc2fd31d669947e993aa07ef10dc9828bee7..aa7d4b0b4653ddb47cb1de2036d090ec2ba9dab1 2024-04-05 07:42:54 UTC to 2024-04-05 07:42:54 UTC - Dependencies: changed "qemu-arch-extra" to "qemu-system-arm" on arch section (rust-embedded/book#368) ## rust-lang/nomicon 2 commits in 6bc2415218d4dd0cb01433d8320f5ccf79c343a1..0d5f88475fe285affa6dbbc806e9e44d730797c0 2024-04-06 13:51:11 UTC to 2024-04-03 02:23:07 UTC - chore: fix typo (rust-lang/nomicon#448) - add link to reference about undefined behavior (rust-lang/nomicon#447) ## rust-lang/reference 3 commits in 984b36eca4b9293df04d5ba4eb5c4f77db0f51dc..55694913b1301cc809f9bf4a1ad1b3d6920efbd9 2024-04-03 21:31:14 UTC to 2024-04-01 19:56:13 UTC - Add the `#[diagnostic]` attribute namespace and the `#[diagnostic::on_unimplemented]` feature to the reference (rust-lang/reference#1449) - type-layout: be more specific about 32-bit alignments (rust-lang/reference#1393) - Fix clippy warning in procedural macro example (rust-lang/reference#1488) ## rust-lang/rust-by-example 1 commits in 7601e0c5ad29d5bd3b518700ea63fddfff5915a7..60d34b5fd33db1346f9aabfc0c9d0bda6c8e42be 2024-04-07 13:00:53 UTC to 2024-04-07 13:00:53 UTC - chore: fix some typos (rust-lang/rust-by-example#1833) ## rust-lang/rustc-dev-guide 11 commits in ffa246b7fd95a96e1cd54883e613aed42c32547d..b77a34bd46399687b4ce6a17198e9f316c988794 2024-04-06 20:41:09 UTC to 2024-03-27 08:49:05 UTC - Explicitly mention compiletest directives are supported in rmake.rs (rust-lang/rustc-dev-guide#1949) - Add docs for sharded descriptions (rust-lang/rustc-dev-guide#1959) - Add basic docs for the new `aux-bin` header (rust-lang/rustc-dev-guide#1942) - Add needs-threads header command (rust-lang/rustc-dev-guide#1943) - Fix some broken links under bootstrapping. (rust-lang/rustc-dev-guide#1958) - Replace -Zno-parallel-llvm with -Zno-parallel-backend (rust-lang/rustc-dev-guide#1957) - Rewrite the `Parameter Environments` chapter (rust-lang/rustc-dev-guide#1953) - Add quickstart for how to build and run the compiler (rust-lang/rustc-dev-guide#1951) - Delete length check (rust-lang/rustc-dev-guide#1952) - Fix some comments (rust-lang/rustc-dev-guide#1950) - add opaque-types-region-inference-restrictions (rust-lang/rustc-dev-guide#1948)
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Apr 9, 2024
Rollup merge of rust-lang#123636 - rustbot:docs-update, r=ehuss Update books ## rust-lang/book 23 commits in 19c40bfd2d57641d962f3119a1c343355f1b3c5e..3131aa4642c627a24f523c82566b94a7d920f68c 2024-04-05 22:09:59 UTC to 2024-03-27 18:14:05 UTC - Correct the description of Listing 5-6 (rust-lang/book#3878) - Minor text improvements (rust-lang/book#3790) - Update full code reference main.rs in ch20-03 (rust-lang/book#3857) - Make Note text in ch. 20 consistent with other notes (rust-lang/book#3876) - Consistency fix: start note sentence with a capital (rust-lang/book#3652) - Update README.md (rust-lang/book#3656) - Update panic! formatting style for Guess example (rust-lang/book#3767) - Small correction in ch13-01 (rust-lang/book#3780) - Fix a wording typo in ch07 (rust-lang/book#3694) - Fix a typo: remove an extra 's' from ch. 18.01 (rust-lang/book#3874) - Remove redundant words (rust-lang/book#3672) - Fix rust-lang#3703 (rust-lang/book#3704) - Update loop to Result: 10 (rust-lang/book#3711) - Added "--" between run and args on ch12-03-l12 (rust-lang/book#3726) - Add maintenance time section in appendix-07-nightly-rust.md (rust-lang/book#3859) - Update the link to the farsi translation repository (rust-lang/book#3839) - Update README to use --locked for installing mdbook (rust-lang/book#3830) - Reword "`union`s" to "a `union`" (rust-lang/book#3738) - Fix two typos in 04-03 and 07-03 (rust-lang/book#3849) - Fix typo in Chapter 7 Section 3 (rust-lang/book#3743) - Improve ch03-05-control-flow collection looping wording (rust-lang/book#3758) - Fix missing column separator (rust-lang/book#3855) - Update compiler message (rust-lang/book#3856) ## rust-lang/edition-guide 3 commits in 98b33e9a441457b0a491fe1be90e7de64eafc3e5..eb3eb80e106d03250c1fb7c5666b1c8c59672862 2024-03-27 20:44:27 UTC to 2024-03-26 19:26:15 UTC - some mdbook conveniences (rust-lang/edition-guide#297) - typo (rust-lang/edition-guide#296) - Clean up the `editions/index.md` page (rust-lang/edition-guide#294) ## rust-embedded/book 1 commits in 2e95fc2fd31d669947e993aa07ef10dc9828bee7..aa7d4b0b4653ddb47cb1de2036d090ec2ba9dab1 2024-04-05 07:42:54 UTC to 2024-04-05 07:42:54 UTC - Dependencies: changed "qemu-arch-extra" to "qemu-system-arm" on arch section (rust-embedded/book#368) ## rust-lang/nomicon 2 commits in 6bc2415218d4dd0cb01433d8320f5ccf79c343a1..0d5f88475fe285affa6dbbc806e9e44d730797c0 2024-04-06 13:51:11 UTC to 2024-04-03 02:23:07 UTC - chore: fix typo (rust-lang/nomicon#448) - add link to reference about undefined behavior (rust-lang/nomicon#447) ## rust-lang/reference 3 commits in 984b36eca4b9293df04d5ba4eb5c4f77db0f51dc..55694913b1301cc809f9bf4a1ad1b3d6920efbd9 2024-04-03 21:31:14 UTC to 2024-04-01 19:56:13 UTC - Add the `#[diagnostic]` attribute namespace and the `#[diagnostic::on_unimplemented]` feature to the reference (rust-lang/reference#1449) - type-layout: be more specific about 32-bit alignments (rust-lang/reference#1393) - Fix clippy warning in procedural macro example (rust-lang/reference#1488) ## rust-lang/rust-by-example 1 commits in 7601e0c5ad29d5bd3b518700ea63fddfff5915a7..60d34b5fd33db1346f9aabfc0c9d0bda6c8e42be 2024-04-07 13:00:53 UTC to 2024-04-07 13:00:53 UTC - chore: fix some typos (rust-lang/rust-by-example#1833) ## rust-lang/rustc-dev-guide 11 commits in ffa246b7fd95a96e1cd54883e613aed42c32547d..b77a34bd46399687b4ce6a17198e9f316c988794 2024-04-06 20:41:09 UTC to 2024-03-27 08:49:05 UTC - Explicitly mention compiletest directives are supported in rmake.rs (rust-lang/rustc-dev-guide#1949) - Add docs for sharded descriptions (rust-lang/rustc-dev-guide#1959) - Add basic docs for the new `aux-bin` header (rust-lang/rustc-dev-guide#1942) - Add needs-threads header command (rust-lang/rustc-dev-guide#1943) - Fix some broken links under bootstrapping. (rust-lang/rustc-dev-guide#1958) - Replace -Zno-parallel-llvm with -Zno-parallel-backend (rust-lang/rustc-dev-guide#1957) - Rewrite the `Parameter Environments` chapter (rust-lang/rustc-dev-guide#1953) - Add quickstart for how to build and run the compiler (rust-lang/rustc-dev-guide#1951) - Delete length check (rust-lang/rustc-dev-guide#1952) - Fix some comments (rust-lang/rustc-dev-guide#1950) - add opaque-types-region-inference-restrictions (rust-lang/rustc-dev-guide#1948)
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.
The rust-reference implies that 64-bit types are aligned to 32-bit for platforms with 32-bit addresses. This is not necessarily correct. Fix the wording.
Note that there is no general rule how data-types greater than the native address size are aligned. On most Unix'y systems, they use the native alignment of the platform. However, the Windows ABI aligns them to their size (up to at least 64-bit).
There are advantages for either of those decisions. But we should at least make clear that there is no fixed rule for 32-bit platforms.