-
Notifications
You must be signed in to change notification settings - Fork 523
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
panic runtime and C-unwind documentation #1226
Conversation
Hm... not sure how to fix the links to the newly-introduced page. Is there an index page I need to edit? Edit: I think I found it |
src/items/functions.md
Outdated
| panic runtime | ABI | `panic`-unwind | Unforced foreign unwind | | ||
| -------------- | ------------ | ------------------------------------- | ----------------------- | | ||
| `panic=unwind` | `"C-unwind"` | unwind | unwind | | ||
| `panic=unwind` | `"C"` | abort | UB | | ||
| `panic=abort` | `"C-unwind"` | `panic!` aborts | abort | | ||
| `panic=abort` | `"C"` | `panic!` aborts (no unwinding occurs) | UB | |
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.
| panic runtime | ABI | `panic`-unwind | Unforced foreign unwind | | |
| -------------- | ------------ | ------------------------------------- | ----------------------- | | |
| `panic=unwind` | `"C-unwind"` | unwind | unwind | | |
| `panic=unwind` | `"C"` | abort | UB | | |
| `panic=abort` | `"C-unwind"` | `panic!` aborts | abort | | |
| `panic=abort` | `"C"` | `panic!` aborts (no unwinding occurs) | UB | | |
| panic runtime | ABI | `panic`-unwind | Unforced foreign unwind | | |
| -------------- | ------------ | ------------------------------------- | ----------------------- | | |
| `panic=unwind` | `"C-unwind"` | unwind | unwind | | |
| `panic=unwind` | `"C"` | abort if unwinding reaches the function | UB if unwinding reaches the function | | |
| `panic=abort` | `"C-unwind"` | aborts immediately (no unwinding occurs) | abort if unwinding reaches the function | | |
| `panic=abort` | `"C"` | aborts immediately (no unwinding occurs) | UB if unwinding reaches the function | |
I found this a bit confusing. I believe there are subtle differences in terms of where the aborts occur and so forth. I have tried to clarify above, but I think it may be worth further clarifying.
It may also be worth adding some (perhaps non-normative) discussion of implementation:
- When compiling a function F with
panic=unwind
andextern "C"
, the compiler inserts unwinding guards for Rust panics that trigger an abort when unwinding reaches F.
I am also be misunderstanding what's going on. I was a bit surprised to see "UB" for unforced-foreign-unwind with C=unwind. I guess that this table is combining two scenarios:
- what happens when you call a C++ function declared as extern "C", and it unwinds (UB, we haven't compiled any guards)
- what happens when an
extern "C"
Rust function invokes some C++ function that throws (probably, in practice, an abort, but perhaps we have simplified to call it UB?)
Is that right?
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.
It's only UB for a foreign function declared as extern "C"
to unwind.
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.
@nbdd0121 what happens when an extern "C"
Rust function unwinds? I believe we insert an abort guard, but this table doesn't clarify that, right? Or maybe I don't understand what it's trying to convey. I'm imagining a scenario like
extern "C-unwind" fn throws();
extern "C" fn rust_fn() {
throws(); // unwinds
}
In this case, I presume you get an abort -- and I think we guarantee that? But the way I read this table, it would be listed as UB.
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.
Hm....I don't know if the panic
abort guard would currently catch and abort in that case, or if it relies on the personality function to only abort on true Rust panic
s. I agree that the behavior in the table as-written is UB.
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.
@nbdd0121 what happens when an
extern "C"
Rust function unwinds? I believe we insert an abort guard, but this table doesn't clarify that, right? Or maybe I don't understand what it's trying to convey. I'm imagining a scenario likeextern "C-unwind" fn throws(); extern "C" fn rust_fn() { throws(); // unwinds }In this case, I presume you get an abort -- and I think we guarantee that? But the way I read this table, it would be listed as UB.
Unwinding out from extern "C"
functions (defined in either Rust or foreign language) is UB.
In the case you listed, we insert guard to prevent unwinding from actually leaving a Rust extern "C"
functions, therefore the function does not unwind, so UB is prevented; in this case we never unwinds out from a extern "C"
Rust functions.
If you define a extern "C-unwind"
Rust function and transmute it to extern "C"
and then call it, it's not UB if unwinding does not happen, and it's UB if unwinding happens.
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.
@nikomatsakis With the change to the verbiage above, explaining that the table entries are specifically describing behavior at function boundaries, do you still want to make a change here?
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.
Please check whether the notes I suggested to add under the table are correct.
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.
@nikomatsakis Can I resolve this comment thread now?
Sorry for the delay; I think I've addressed all comments. |
@tmandry @nikomatsakis I'm not sure you saw my comments & changes last week, but I think this is ready for re-review. |
Could you squash the commits? |
@nbdd0121 Can that be done on merge? I've heard that GitHub sometimes has trouble with PR branches that receive force-pushes. |
I think I've resolved all open questions and concerns. Is there anything else needed from me at the moment? |
This really needs rebasing now. |
e8c62b4
to
6e83797
Compare
@nbdd0121 Done! |
@tmandry two changes since your review:
|
38719cd
to
003a8a4
Compare
@ehuss Should I unwrap all the lines in files that this MR touches, even ones that aren't new to the MR? For instance, |
662b98d
to
ffc056c
Compare
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.
I volunteered to review this on behalf of @rust-lang/lang.
I read through the entire PR in detail, and this looks good. It's entirely unsurprising, and it matches my understanding of how e.g. the unwind ABIs and panic strategies are supposed to work. I don't think anything here will be surprising to anyone on lang. This looks great, thank you for documenting it!
@rustbot labels -I-lang-nominated We discussed this on the lang call today briefly, but without reviewing the details. We discussed how probably it's the role of spec, or least of one of us on lang, to read it and flag anything that should be discussed. In general I think that's right, but looking at this again now, I'm thinking to myself that maybe we should in fact just FCP this sort of thing. It's hard to be really sure that nobody would flag anything here without having most people just read it. That said, let's not start that on this one. It's been outstanding long enough. It's the product of a ton of back and forth between @BatmanAoD, who pushed forward much of the underlying work (which did receive careful lang review), and @RalfJung, and then @ehuss has greatly polished it, and now it looks right on review to both @joshtriplett and myself, and an earlier draft was approved by @tmandry and reviewed by @nikomatsakis. So let's call this one good to go. @ehuss: There's an open thread with @BatmanAoD you might want to have a look at here, and then feel free to merge this at your discretion. |
I opened #1745 to follow up on the minor question I had about C++ unwinding. |
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.
Thank you @BatmanAoD for your patience. Sorry for letting this linger for so long. I appreciate all your help with this!
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914) try-job: x86_64-gnu-distcheck
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914) try-job: x86_64-gnu-distcheck
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914) try-job: x86_64-gnu-distcheck
Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914) try-job: x86_64-gnu-distcheck
Rollup merge of rust-lang#138313 - rustbot:docs-update, r=jieyouxu Update books ## rust-lang/book 11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb 2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC - Ch. 10: Make social media discussion generic. (rust-lang/book#4249) - Another Ch. 17 -> 18 fix (rust-lang/book#4247) - Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246) - Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245) - Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244) - Edition maintenance: scripting the updates for future work (rust-lang/book#4243) - Ch. 17: fresh-eyes edits (rust-lang/book#4242) - Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212) - Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240) - Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241) - Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239) ## rust-lang/edition-guide 2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c 2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC - Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372) - Fix a typo (rust-lang/edition-guide#370) ## rust-lang/nomicon 1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc 2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC - Update to 2024 edition (rust-lang/nomicon#481) ## rust-lang/reference 8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626 2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC - Rework note blocks and change admonition rendering (rust-lang/reference#1754) - Add more information on rules and tests (rust-lang/reference#1753) - Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747) - fixup test links (rust-lang/reference#1741) - Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749) - panic runtime and C-unwind documentation (rust-lang/reference#1226) - Closures: fix example of desugaring (rust-lang/reference#1743) - Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744) ## rust-lang/rust-by-example 1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3 2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC - Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914) try-job: x86_64-gnu-distcheck
Tracking issue: rust-lang/rust#74990
Closes #579