Print thread ID in panic message by tgross35 · Pull Request #115746 · rust-lang/rust
rustbot
added
S-waiting-on-review
labels
Sep 11, 2023
rustbot
added
T-libs-api
and removed T-libs
Relevant to the library team, which will review and decide on the PR/issue.labels
Sep 11, 2023
rustbot
removed
the
T-compiler
label
Sep 11, 2023rust-timer added a commit that referenced this pull request
Aug 9, 2025github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request
Aug 12, 2025…ge, r=cuviper
Print thread ID in panic message
`panic!` does not print any identifying information for threads that are
unnamed. However, in many cases, the thread ID can be determined.
This changes the panic message from something like this:
thread '<unnamed>' panicked at src/main.rs:3:5:
explicit panic
To something like this:
thread '<unnamed>' (12345) panicked at src/main.rs:3:5:
explicit panic
Stack overflow messages are updated as well.
This change applies to both named and unnamed threads. The ID printed is
the OS integer thread ID rather than the Rust thread ID, which should
also be what debuggers print.
try-job: aarch64-apple
try-job: aarch64-gnu
try-job: dist-apple-various
try-job: dist-various-*
try-job: dist-x86_64-freebsd
try-job: dist-x86_64-illumos
try-job: dist-x86_64-netbsd
try-job: dist-x86_64-solaris
try-job: test-various
try-job: x86_64-gnu
try-job: x86_64-mingw-1
try-job: x86_64-msvc-1
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request
Aug 12, 2025ojuschugh1 added a commit to ojuschugh1/cargo that referenced this pull request
Aug 15, 2025Fix all the broken intra-doc links docs(build-rs): Fix broken intra-doc links These were caught with the latest nightly This was pulled from rust-lang#15800 chore(deps): update rust crate cargo_metadata to 0.21.0 docs: `-Zpackage-workspace` has been stabilized chore: bump to 0.92.0 docs: update changelog for 1.90.0 Add test for multiple build scripts in different order Preserve order of build scripts Update semver tests for 1.89 This updates the tests where messages have changed in 1.89. chore(deps): update msrv (1 version) to v1.89 chore: Bump versions test(build-std): relax the thread name assertion rust-lang/rust#115746 changed to print thread ID, so we update accordingly. chore(deps): update cargo-semver-checks to v0.43.0 docs(unstable): Link out to the Plumbing commands effort This is intended to help people discover where to go to discuss plumbing command efforts. chore(deps): update compatible add is_inherited method to InheritableDependency add is_inherited method to InheritableField Add unstable `-Zsection-timings` flag Pass `--json=timings` to rustc when `--timings` and `-Zsection-timings` is enabled Parse and store section timing events Add section timing data to JSON `--timings` output Make headers of the HTML `--timings` unit table dynamic Add compilation sections to the HTML unit table Duplicates of unknown_feature test More helpful error for invalid cargo-features = [] test(package): Add test to verify package build cache behavior fix(package): Fixed inconsistent build cache behavior during package verify When running `cargo package` the verify the build cache (target-dir/build-dir) will not be used and all dependencies will be recompiled. This is inconsistent as setting target dir (via `CARGO_TARGET_DIR` for example) will cause `cargo package` to reuse the build cache. This commit changes the default behavior to always use the build cache, matching the behavior of having target-dir set. chore(deps): update msrv (3 versions) to v1.87 chore: remove x86_64-apple-darwin from CI and tests RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2 in 1.90.0. In Cargo we usually run test against tier-1 platforms, so x86_64-apple-darwin should be removed. Also, that target platform is often the slowest one in CI, we are happy to remove it to save us a couple of minutes. https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html chore(deps): bump slab from 0.4.10 to 0.4.11 Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.10 to 0.4.11. - [Release notes](https://github.com/tokio-rs/slab/releases) - [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md) - [Commits](tokio-rs/slab@v0.4.10...v0.4.11) --- updated-dependencies: - dependency-name: slab dependency-version: 0.4.11 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> refactor: make resolve features public feat(build-dir): Stabilize build-dir docs: Formatting and cross-linking to build-dir/target-dir docs Update src/doc/man/cargo-doc.md as per the feedback recieved regenerated pages using cargo build-man and ran ./ci/validate-man.sh and sync branch with master branch
ojuschugh1 added a commit to ojuschugh1/cargo that referenced this pull request
Aug 15, 2025Fix all the broken intra-doc links docs(build-rs): Fix broken intra-doc links These were caught with the latest nightly This was pulled from rust-lang#15800 chore(deps): update rust crate cargo_metadata to 0.21.0 docs: `-Zpackage-workspace` has been stabilized chore: bump to 0.92.0 docs: update changelog for 1.90.0 Add test for multiple build scripts in different order Preserve order of build scripts Update semver tests for 1.89 This updates the tests where messages have changed in 1.89. chore(deps): update msrv (1 version) to v1.89 chore: Bump versions test(build-std): relax the thread name assertion rust-lang/rust#115746 changed to print thread ID, so we update accordingly. chore(deps): update cargo-semver-checks to v0.43.0 docs(unstable): Link out to the Plumbing commands effort This is intended to help people discover where to go to discuss plumbing command efforts. chore(deps): update compatible add is_inherited method to InheritableDependency add is_inherited method to InheritableField Add unstable `-Zsection-timings` flag Pass `--json=timings` to rustc when `--timings` and `-Zsection-timings` is enabled Parse and store section timing events Add section timing data to JSON `--timings` output Make headers of the HTML `--timings` unit table dynamic Add compilation sections to the HTML unit table Duplicates of unknown_feature test More helpful error for invalid cargo-features = [] test(package): Add test to verify package build cache behavior fix(package): Fixed inconsistent build cache behavior during package verify When running `cargo package` the verify the build cache (target-dir/build-dir) will not be used and all dependencies will be recompiled. This is inconsistent as setting target dir (via `CARGO_TARGET_DIR` for example) will cause `cargo package` to reuse the build cache. This commit changes the default behavior to always use the build cache, matching the behavior of having target-dir set. chore(deps): update msrv (3 versions) to v1.87 chore: remove x86_64-apple-darwin from CI and tests RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2 in 1.90.0. In Cargo we usually run test against tier-1 platforms, so x86_64-apple-darwin should be removed. Also, that target platform is often the slowest one in CI, we are happy to remove it to save us a couple of minutes. https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html chore(deps): bump slab from 0.4.10 to 0.4.11 Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.10 to 0.4.11. - [Release notes](https://github.com/tokio-rs/slab/releases) - [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md) - [Commits](tokio-rs/slab@v0.4.10...v0.4.11) --- updated-dependencies: - dependency-name: slab dependency-version: 0.4.11 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> refactor: make resolve features public feat(build-dir): Stabilize build-dir docs: Formatting and cross-linking to build-dir/target-dir docs Update src/doc/man/cargo-doc.md as per the feedback recieved regenerated pages using cargo build-man and ran ./ci/validate-man.sh and sync branch with master branch
HKalbasi pushed a commit to HKalbasi/zngur that referenced this pull request
Aug 19, 2025* Add support for using Field* as their underlying type * Documentation for new field support * Tests for field support with underlying read * Update expected_output.txt to account for extra newline in test output * Move field documentation to new file * Remove read and as_ref methods on fields * Switch to rust stable to work around rust-lang/rust#115746 * Use clone to copy std::string * Update test expectation * Install lld and explicitly set CC for clang++ builds * Remove errant read() from docs
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request
Nov 4, 2025This MR contains the following updates: | Package | Update | Change | |---|---|---| | [rust](https://github.com/rust-lang/rust) | minor | `1.90.0` -> `1.91.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>rust-lang/rust (rust)</summary> ### [`v1.91.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1910-2025-10-30) [Compare Source](rust-lang/rust@1.90.0...1.91.0) \========================== <a id="1.91.0-Language"></a> ## Language - [Lower pattern bindings in the order they're written and base drop order on primary bindings' order](rust-lang/rust#143764) - [Stabilize declaration of C-style variadic functions for `sysv64`, `win64`, `efiapi`, and `aapcs` ABIs](rust-lang/rust#144066). This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined. - [Add `dangling_pointers_from_locals` lint to warn against dangling pointers from local variables](rust-lang/rust#144322) - [Upgrade `semicolon_in_expressions_from_macros` from warn to deny](rust-lang/rust#144369) - [Stabilize LoongArch32 inline assembly](rust-lang/rust#144402) - [Add warn-by-default `integer_to_ptr_transmutes` lint against integer-to-pointer transmutes](rust-lang/rust#144531) - [Stabilize `sse4a` and `tbm` target features](rust-lang/rust#144542) - [Add `target_env = "macabi"` and `target_env = "sim"` cfgs](rust-lang/rust#139451) as replacements for the `target_abi` cfgs with the same values. <a id="1.91.0-Compiler"></a> ## Compiler - [Don't warn on never-to-any `as` casts as unreachable](rust-lang/rust#144804) <a id="1.91.0-Platform-Support"></a> ## Platform Support - [Promote `aarch64-pc-windows-gnullvm` and `x86_64-pc-windows-gnullvm` to Tier 2 with host tools.](rust-lang/rust#143031) Note: llvm-tools and MSI installers are missing but will be added in future releases. - [Promote `aarch64-pc-windows-msvc` to Tier 1](rust-lang/rust#145682) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. [platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html <a id="1.91.0-Libraries"></a> ## Libraries - [Print thread ID in panic message](rust-lang/rust#115746) - [Fix overly restrictive lifetime in `core::panic::Location::file` return type](rust-lang/rust#132087) - [Guarantee parameter order for `_by()` variants of `min` / `max`/ `minmax` in `std::cmp`](rust-lang/rust#139357) - [Document assumptions about `Clone` and `Eq` traits](rust-lang/rust#144330) - [`std::thread`: Return error if setting thread stack size fails](rust-lang/rust#144210) This used to panic within the standard library. <a id="1.91.0-Stabilized-APIs"></a> ## Stabilized APIs - [`Path::file_prefix`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.file_prefix) - [`AtomicPtr::fetch_ptr_add`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_ptr_add) - [`AtomicPtr::fetch_ptr_sub`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_ptr_sub) - [`AtomicPtr::fetch_byte_add`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_byte_add) - [`AtomicPtr::fetch_byte_sub`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_byte_sub) - [`AtomicPtr::fetch_or`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_or) - [`AtomicPtr::fetch_and`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_and) - [`AtomicPtr::fetch_xor`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_xor) - [`{integer}::strict_add`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_add) - [`{integer}::strict_sub`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_sub) - [`{integer}::strict_mul`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_mul) - [`{integer}::strict_div`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_div) - [`{integer}::strict_div_euclid`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_div_euclid) - [`{integer}::strict_rem`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_rem) - [`{integer}::strict_rem_euclid`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_rem_euclid) - [`{integer}::strict_neg`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_neg) - [`{integer}::strict_shl`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_shl) - [`{integer}::strict_shr`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_shr) - [`{integer}::strict_pow`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_pow) - [`i{N}::strict_add_unsigned`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_add_unsigned) - [`i{N}::strict_sub_unsigned`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_sub_unsigned) - [`i{N}::strict_abs`](https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_abs) - [`u{N}::strict_add_signed`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_add_signed) - [`u{N}::strict_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_sub_signed) - [`PanicHookInfo::payload_as_str`](https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html#method.payload_as_str) - [`core::iter::chain`](https://doc.rust-lang.org/stable/core/iter/fn.chain.html) - [`u{N}::checked_signed_diff`](https://doc.rust-lang.org/stable/std/primitive.u16.html#method.checked_signed_diff) - [`core::array::repeat`](https://doc.rust-lang.org/stable/core/array/fn.repeat.html) - [`PathBuf::add_extension`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.add_extension) - [`PathBuf::with_added_extension`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.with_added_extension) - [`Duration::from_mins`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_mins) - [`Duration::from_hours`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_hours) - [`impl PartialEq<str> for PathBuf`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#impl-PartialEq%3Cstr%3E-for-PathBuf) - [`impl PartialEq<String> for PathBuf`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#impl-PartialEq%3CString%3E-for-PathBuf) - [`impl PartialEq<str> for Path`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#impl-PartialEq%3Cstr%3E-for-Path) - [`impl PartialEq<String> for Path`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#impl-PartialEq%3CString%3E-for-Path) - [`impl PartialEq<PathBuf> for String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-PartialEq%3CPathBuf%3E-for-String) - [`impl PartialEq<Path> for String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-PartialEq%3CPath%3E-for-String) - [`impl PartialEq<PathBuf> for str`](https://doc.rust-lang.org/stable/std/primitive.str.html#impl-PartialEq%3CPathBuf%3E-for-str) - [`impl PartialEq<Path> for str`](https://doc.rust-lang.org/stable/std/primitive.str.html#impl-PartialEq%3CPath%3E-for-str) - [`Ipv4Addr::from_octets`](https://doc.rust-lang.org/stable/std/net/struct.Ipv4Addr.html#method.from_octets) - [`Ipv6Addr::from_octets`](https://doc.rust-lang.org/stable/std/net/struct.Ipv6Addr.html#method.from_octets) - [`Ipv6Addr::from_segments`](https://doc.rust-lang.org/stable/std/net/struct.Ipv6Addr.html#method.from_segments) - [`impl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sized`](https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CBox%3CT%3E%3E) - [`impl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sized`](https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CRc%3CT%3E%3E) - [`impl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?Sized`](https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CArc%3CT%3E%3E) - [`Cell::as_array_of_cells`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.as_array_of_cells) - [`u{N}::carrying_add`](https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_add) - [`u{N}::borrowing_sub`](https://doc.rust-lang.org/stable/std/primitive.u64.html#method.borrowing_sub) - [`u{N}::carrying_mul`](https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_mul) - [`u{N}::carrying_mul_add`](https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_mul_add) - [`BTreeMap::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.extract_if) - [`BTreeSet::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html#method.extract_if) - [`impl Debug for windows::ffi::EncodeWide<'_>`](https://doc.rust-lang.org/stable/std/os/windows/ffi/struct.EncodeWide.html#impl-Debug-for-EncodeWide%3C'_%3E) - [`str::ceil_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.ceil_char_boundary) - [`str::floor_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.floor_char_boundary) - [`impl Sum for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum-for-Saturating%3Cu32%3E) - [`impl Sum<&Self> for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E) - [`impl Product for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product-for-Saturating%3Cu32%3E) - [`impl Product<&Self> for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E) These previously stable APIs are now stable in const contexts: - [`<[T; N]>::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref) - [`<[T; N]>::each_mut`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut) - [`OsString::new`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.new) - [`PathBuf::new`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.new) - [`TypeId::of`](https://doc.rust-lang.org/stable/std/any/struct.TypeId.html#method.of) - [`ptr::with_exposed_provenance`](https://doc.rust-lang.org/stable/std/ptr/fn.with_exposed_provenance.html) - [`ptr::with_exposed_provenance_mut`](https://doc.rust-lang.org/stable/std/ptr/fn.with_exposed_provenance_mut.html) <a id="1.91.0-Cargo"></a> ## Cargo - 🎉 Stabilize `build.build-dir`. This config sets the directory where intermediate build artifacts are stored. These artifacts are produced by Cargo and rustc during the build process. End users usually won't need to interact with them, and the layout inside `build-dir` is an implementation detail that may change without notice. ([config doc](https://doc.rust-lang.org/stable/cargo/reference/config.html#buildbuild-dir)) ([build cache doc](https://doc.rust-lang.org/stable/cargo/reference/build-cache.html)) [#​15833](rust-lang/cargo#15833) [#​15840](rust-lang/cargo#15840) - The `--target` flag and the `build.target` configuration can now take literal `"host-tuple"` string, which will internally be substituted by the host machine's target triple. [#​15838](rust-lang/cargo#15838) [#​16003](rust-lang/cargo#16003) [#​16032](rust-lang/cargo#16032) <a id="1.91.0-Rustdoc"></a> ## Rustdoc - [In search results, rank doc aliases lower than non-alias items with the same name](rust-lang/rust#145100) - [Raw pointers now work in type-based search like references](rust-lang/rust#145731). This means you can now search for things like `*const u8 ->`, and additionally functions that take or return raw pointers will now display their signature properly in search results. <a id="1.91.0-Compatibility-Notes"></a> ## Compatibility Notes - [Always require coroutine captures to be drop-live](rust-lang/rust#144156) - [Apple: Always pass SDK root when linking with `cc`, and pass it via `SDKROOT` env var](rust-lang/rust#131477). This should fix linking issues with `rustc` running inside Xcode. Libraries in `/usr/local/lib` may no longer be linked automatically, if you develop or use a crate that relies on this, you should explicitly set `cargo::rustc-link-search=/usr/local/lib` in a `build.rs` script. - [Relaxed bounds in associated type bound position like in `TraitRef<AssocTy: ?Sized>` are now correctly forbidden](rust-lang/rust#135331) - [Add unstable `#[sanitize(xyz = "on|off")]` built-in attribute that shadows procedural macros with the same name](rust-lang/rust#142681) - [Fix the drop checker being more permissive for bindings declared with let-else](rust-lang/rust#143028) - [Be more strict when parsing attributes, erroring on many invalid attributes](rust-lang/rust#144689) - [Error on invalid `#[should_panic]` attributes](rust-lang/rust#143808) - [Error on invalid `#[link]` attributes](rust-lang/rust#143193) - [Mark all deprecation lints in name resolution as deny-by-default and also report in dependencies](rust-lang/rust#143929) - The lint `semicolon_in_expressions_from_macros`, for `macro_rules!` macros in expression position that expand to end in a semicolon (`;`), is now deny-by-default. It was already warn-by-default, and a future compatibility warning (FCW) that warned even in dependencies. This lint will become a hard error in the future. - [Trait impl modifiers (e.g., `unsafe`, `!`, `default`) in inherent impls are no longer syntactically valid](rust-lang/rust#144386) - [Start reporting future breakage for `ill_formed_attribute_input` in dependencies](rust-lang/rust#144544) - [Restrict the scope of temporaries created by the macros `pin!`, `format_args!`, `write!`, and `writeln!` in `if let` scrutinees in Rust Edition 2024.](rust-lang/rust#145342) This applies [Rust Edition 2024's `if let` temporary scope rules](https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html) to these temporaries, which previously could live past the `if` expression regardless of Edition. - [Invalid numeric literal suffixes in tuple indexing, tuple struct indexing, and struct field name positions are now correctly rejected](rust-lang/rust#145463) - [Closures marked with the keyword `static` are now syntactically invalid](rust-lang/rust#145604) - [Shebangs inside `--cfg` and `--check-cfg` arguments are no longer allowed](rust-lang/rust#146211) - [Add future incompatibility lint for temporary lifetime shortening in Rust 1.92](rust-lang/rust#147056) Cargo compatibility notes: - `cargo publish` no longer keeps `.crate` tarballs as final build artifacts when `build.build-dir` is set. These tarballs were previously included due to an oversight and are now treated as intermediate artifacts. To get `.crate` tarballs as final artifacts, use `cargo package`. In a future version, this change will apply regardless of `build.build-dir`. [#​15910](rust-lang/cargo#15910) - Adjust Cargo messages to match rustc diagnostic style. This changes some of the terminal colors used by Cargo messages. [#​15928](rust-lang/cargo#15928) - Tools and projects relying on the [internal details of Cargo's `build-dir`](https://doc.rust-lang.org/cargo/reference/build-cache.html) may not work for users changing their `build-dir` layout. For those doing so, we'd recommend proactively testing these cases particularly as we are considering changing the default location of the `build-dir` in the future ([cargo#16147](rust-lang/cargo#16147)). If you can't migrate off of Cargo's internal details, we'd like to learn more about your use case as we prepare to change the layout of the `build-dir` ([cargo#15010](rust-lang/cargo#15010)). <a id="1.91.0-Internal-Changes"></a> ## Internal Changes These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools. - [Update to LLVM 21](rust-lang/rust#143684) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request
Nov 5, 2025Pkgsrc changes: * Adjust patches to adapt to upstream changes and new versions. * assosicated checksums * Add a workaround for LLVM mis-using -isystem. Reported upstream at llvm/llvm-project#166420 Noteable failures at the time of commit: * The cross-build for armv6 fails, reported upstream at rust-lang/rust#148464 * The cross-build for powerpc fails, reported upstream at rust-lang/rust#148497 This is R_PPC_PLTREL24 which now has insufficient range. Asked for recpie for directing the rust code generator to cope. Upstream changes relative to 1.90.0: Version 1.91.0 (2025-10-30) ========================== Language -------- - [Lower pattern bindings in the order they're written and base drop order on primary bindings' order] (rust-lang/rust#143764) - [Stabilize declaration of C-style variadic functions for `sysv64`, `win64`, `efiapi`, and `aapcs` ABIs] (rust-lang/rust#144066). This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined. - [Add `dangling_pointers_from_locals` lint to warn against dangling pointers from local variables] (rust-lang/rust#144322) - [Upgrade `semicolon_in_expressions_from_macros` from warn to deny] (rust-lang/rust#144369) - [Stabilize LoongArch32 inline assembly] (rust-lang/rust#144402) - [Add warn-by-default `integer_to_ptr_transmutes` lint against integer-to-pointer transmutes] (rust-lang/rust#144531) - [Stabilize `sse4a` and `tbm` target features] (rust-lang/rust#144542) - [Add `target_env = "macabi"` and `target_env = "sim"` cfgs] (rust-lang/rust#139451) as replacements for the `target_abi` cfgs with the same values. Compiler -------- - [Don't warn on never-to-any `as` casts as unreachable] (rust-lang/rust#144804) Platform Support ---------------- - [Promote `aarch64-pc-windows-gnullvm` and `x86_64-pc-windows-gnullvm` to Tier 2 with host tools.] (rust-lang/rust#143031) Note: llvm-tools and MSI installers are missing but will be added in future releases. - [Promote `aarch64-pc-windows-msvc` to Tier 1] (rust-lang/rust#145682) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. [platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html Libraries --------- - [Print thread ID in panic message] (rust-lang/rust#115746) - [Fix overly restrictive lifetime in `core::panic::Location::file` return type] (rust-lang/rust#132087) - [Guarantee parameter order for `_by()` variants of `min` / `max`/ `minmax` in `std::cmp`] (rust-lang/rust#139357) - [Document assumptions about `Clone` and `Eq` traits] (rust-lang/rust#144330) - [`std::thread`: Return error if setting thread stack size fails] (rust-lang/rust#144210) This used to panic within the standard library. Stabilized APIs --------------- - [`Path::file_prefix`] (https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.file_prefix) - [`AtomicPtr::fetch_ptr_add`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_ptr_add) - [`AtomicPtr::fetch_ptr_sub`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_ptr_sub) - [`AtomicPtr::fetch_byte_add`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_byte_add) - [`AtomicPtr::fetch_byte_sub`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_byte_sub) - [`AtomicPtr::fetch_or`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_or) - [`AtomicPtr::fetch_and`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_and) - [`AtomicPtr::fetch_xor`] (https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.fetch_xor) - [`{integer}::strict_add`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_add) - [`{integer}::strict_sub`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_sub) - [`{integer}::strict_mul`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_mul) - [`{integer}::strict_div`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_div) - [`{integer}::strict_div_euclid`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_div_euclid) - [`{integer}::strict_rem`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_rem) - [`{integer}::strict_rem_euclid`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_rem_euclid) - [`{integer}::strict_neg`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_neg) - [`{integer}::strict_shl`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_shl) - [`{integer}::strict_shr`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_shr) - [`{integer}::strict_pow`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_pow) - [`i{N}::strict_add_unsigned`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_add_unsigned) - [`i{N}::strict_sub_unsigned`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_sub_unsigned) - [`i{N}::strict_abs`] (https://doc.rust-lang.org/stable/std/primitive.i32.html#method.strict_abs) - [`u{N}::strict_add_signed`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_add_signed) - [`u{N}::strict_sub_signed`] (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.strict_sub_signed) - [`PanicHookInfo::payload_as_str`] (https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html#method.payload_as_str) - [`core::iter::chain`] (https://doc.rust-lang.org/stable/core/iter/fn.chain.html) - [`u{N}::checked_signed_diff`] (https://doc.rust-lang.org/stable/std/primitive.u16.html#method.checked_signed_diff) - [`core::array::repeat`] (https://doc.rust-lang.org/stable/core/array/fn.repeat.html) - [`PathBuf::add_extension`] (https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.add_extension) - [`PathBuf::with_added_extension`] (https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.with_added_extension) - [`Duration::from_mins`] (https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_mins) - [`Duration::from_hours`] (https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_hours) - [`impl PartialEq<str> for PathBuf`] (https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#impl-PartialEq%3Cstr%3E-for-PathBuf) - [`impl PartialEq<String> for PathBuf`] (https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#impl-PartialEq%3CString%3E-for-PathBuf) - [`impl PartialEq<str> for Path`] (https://doc.rust-lang.org/stable/std/path/struct.Path.html#impl-PartialEq%3Cstr%3E-for-Path) - [`impl PartialEq<String> for Path`] (https://doc.rust-lang.org/stable/std/path/struct.Path.html#impl-PartialEq%3CString%3E-for-Path) - [`impl PartialEq<PathBuf> for String`] (https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-PartialEq%3CPathBuf%3E-for-String) - [`impl PartialEq<Path> for String`] (https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-PartialEq%3CPath%3E-for-String) - [`impl PartialEq<PathBuf> for str`] (https://doc.rust-lang.org/stable/std/primitive.str.html#impl-PartialEq%3CPathBuf%3E-for-str) - [`impl PartialEq<Path> for str`] (https://doc.rust-lang.org/stable/std/primitive.str.html#impl-PartialEq%3CPath%3E-for-str) - [`Ipv4Addr::from_octets`] (https://doc.rust-lang.org/stable/std/net/struct.Ipv4Addr.html#method.from_octets) - [`Ipv6Addr::from_octets`] (https://doc.rust-lang.org/stable/std/net/struct.Ipv6Addr.html#method.from_octets) - [`Ipv6Addr::from_segments`] (https://doc.rust-lang.org/stable/std/net/struct.Ipv6Addr.html#method.from_segments) - [`impl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sized`] (https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CBox%3CT%3E%3E) - [`impl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sized`] (https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CRc%3CT%3E%3E) - [`impl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?Sized`] (https://doc.rust-lang.org/stable/std/default/trait.Default.html#impl-Default-for-Pin%3CArc%3CT%3E%3E) - [`Cell::as_array_of_cells`] (https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.as_array_of_cells) - [`u{N}::carrying_add`] (https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_add) - [`u{N}::borrowing_sub`] (https://doc.rust-lang.org/stable/std/primitive.u64.html#method.borrowing_sub) - [`u{N}::carrying_mul`] (https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_mul) - [`u{N}::carrying_mul_add`] (https://doc.rust-lang.org/stable/std/primitive.u64.html#method.carrying_mul_add) - [`BTreeMap::extract_if`] (https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.extract_if) - [`BTreeSet::extract_if`] (https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html#method.extract_if) - [`impl Debug for windows::ffi::EncodeWide<'_>`] (https://doc.rust-lang.org/stable/std/os/windows/ffi/struct.EncodeWide.html#impl-Debug-for-EncodeWide%3C'_%3E) - [`str::ceil_char_boundary`] (https://doc.rust-lang.org/stable/std/primitive.str.html#method.ceil_char_boundary) - [`str::floor_char_boundary`] (https://doc.rust-lang.org/stable/std/primitive.str.html#method.floor_char_boundary) - [`impl Sum for Saturating<u{N}>`] (https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum-for-Saturating%3Cu32%3E) - [`impl Sum<&Self> for Saturating<u{N}>`] (https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E) - [`impl Product for Saturating<u{N}>`] (https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product-for-Saturating%3Cu32%3E) - [`impl Product<&Self> for Saturating<u{N}>`] (https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E) These previously stable APIs are now stable in const contexts: - [`<[T; N]>::each_ref`] (https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref) - [`<[T; N]>::each_mut`] (https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut) - [`OsString::new`] (https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.new) - [`PathBuf::new`] (https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.new) - [`TypeId::of`] (https://doc.rust-lang.org/stable/std/any/struct.TypeId.html#method.of) - [`ptr::with_exposed_provenance`] (https://doc.rust-lang.org/stable/std/ptr/fn.with_exposed_provenance.html) - [`ptr::with_exposed_provenance_mut`] (https://doc.rust-lang.org/stable/std/ptr/fn.with_exposed_provenance_mut.html) Cargo ----- - 🎉 Stabilize `build.build-dir`. This config sets the directory where intermediate build artifacts are stored. These artifacts are produced by Cargo and rustc during the build process. End users usually won't need to interact with them, and the layout inside `build-dir` is an implementation detail that may change without notice. ([config doc] (https://doc.rust-lang.org/stable/cargo/reference/config.html#buildbuild-dir)) ([build cache doc] (https://doc.rust-lang.org/stable/cargo/reference/build-cache.html)) [#15833](rust-lang/cargo#15833) [#15840](rust-lang/cargo#15840) - The `--target` flag and the `build.target` configuration can now take literal `"host-tuple"` string, which will internally be substituted by the host machine's target triple. [#15838](rust-lang/cargo#15838) [#16003](rust-lang/cargo#16003) [#16032](rust-lang/cargo#16032) Rustdoc ----- - [In search results, rank doc aliases lower than non-alias items with the same name](rust-lang/rust#145100) - [Raw pointers now work in type-based search like references] (rust-lang/rust#145731). This means you can now search for things like `*const u8 ->`, and additionally functions that take or return raw pointers will now display their signature properly in search results. Compatibility Notes ------------------- - [Always require coroutine captures to be drop-live] (rust-lang/rust#144156) - [Apple: Always pass SDK root when linking with `cc`, and pass it via `SDKROOT` env var] (rust-lang/rust#131477). This should fix linking issues with `rustc` running inside Xcode. Libraries in `/usr/local/lib` may no longer be linked automatically, if you develop or use a crate that relies on this, you should explicitly set `cargo::rustc-link-search=/usr/local/lib` in a `build.rs` script. - [Relaxed bounds in associated type bound position like in `TraitRef<AssocTy: ?Sized>` are now correctly forbidden] (rust-lang/rust#135331) - [Add unstable `#[sanitize(xyz = "on|off")]` built-in attribute that shadows procedural macros with the same name] (rust-lang/rust#142681) - [Fix the drop checker being more permissive for bindings declared with let-else] (rust-lang/rust#143028) - [Be more strict when parsing attributes, erroring on many invalid attributes] (rust-lang/rust#144689) - [Error on invalid `#[should_panic]` attributes] (rust-lang/rust#143808) - [Error on invalid `#[link]` attributes] (rust-lang/rust#143193) - [Mark all deprecation lints in name resolution as deny-by-default and also report in dependencies] (rust-lang/rust#143929) - The lint `semicolon_in_expressions_from_macros`, for `macro_rules!` macros in expression position that expand to end in a semicolon (`;`), is now deny-by-default. It was already warn-by-default, and a future compatibility warning (FCW) that warned even in dependencies. This lint will become a hard error in the future. - [Trait impl modifiers (e.g., `unsafe`, `!`, `default`) in inherent impls are no longer syntactically valid] (rust-lang/rust#144386) - [Start reporting future breakage for `ill_formed_attribute_input` in dependencies] (rust-lang/rust#144544) - [Restrict the scope of temporaries created by the macros `pin!`, `format_args!`, `write!`, and `writeln!` in `if let` scrutinees in Rust Edition 2024.] (rust-lang/rust#145342) This applies [Rust Edition 2024's `if let` temporary scope rules] (https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html) to these temporaries, which previously could live past the `if` expression regardless of Edition. - [Invalid numeric literal suffixes in tuple indexing, tuple struct indexing, and struct field name positions are now correctly rejected] (rust-lang/rust#145463) - [Closures marked with the keyword `static` are now syntactically invalid] (rust-lang/rust#145604) - [Shebangs inside `--cfg` and `--check-cfg` arguments are no longer allowed] (rust-lang/rust#146211) - [Add future incompatibility lint for temporary lifetime shortening in Rust 1.92] (rust-lang/rust#147056) Cargo compatibility notes: - `cargo publish` no longer keeps `.crate` tarballs as final build artifacts when `build.build-dir` is set. These tarballs were previously included due to an oversight and are now treated as intermediate artifacts. To get `.crate` tarballs as final artifacts, use `cargo package`. In a future version, this change will apply regardless of `build.build-dir`. [#15910](rust-lang/cargo#15910) - Adjust Cargo messages to match rustc diagnostic style. This changes some of the terminal colors used by Cargo messages. [#15928](rust-lang/cargo#15928) - Tools and projects relying on the [internal details of Cargo's `build-dir`] (https://doc.rust-lang.org/cargo/reference/build-cache.html) may not work for users changing their `build-dir` layout. For those doing so, we'd recommend proactively testing these cases particularly as we are considering changing the default location of the `build-dir` in the future ([cargo#16147](rust-lang/cargo#16147)). If you can't migrate off of Cargo's internal details, we'd like to learn more about your use case as we prepare to change the layout of the `build-dir` ([cargo#15010] (rust-lang/cargo#15010)). Internal Changes ---------------- These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools. - [Update to LLVM 21](rust-lang/rust#143684)
ShadowCurse added a commit to ShadowCurse/firecracker that referenced this pull request
Feb 2, 2026New rust version brought new syscalls: This commit: 426ab142507fca8704d934da556f1c96b0fd61b2 which updated `write` function for unix sockets to use `sendto` syscall. And this PR: rust-lang/rust#115746 which added call to `gettid` during panic. Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
ShadowCurse added a commit to ShadowCurse/firecracker that referenced this pull request
Feb 3, 2026New rust version brought new syscalls: This commit: 426ab142507fca8704d934da556f1c96b0fd61b2 which updated `write` function for unix sockets to use `sendto` syscall. - Added `sendto` to API and VMM filters And this PR: rust-lang/rust#115746 which added call to `gettid` during panic. - Added `gettid` to API, VMM and VCPU filters Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
JackThomson2 pushed a commit to firecracker-microvm/firecracker that referenced this pull request
Feb 3, 2026New rust version brought new syscalls: This commit: 426ab142507fca8704d934da556f1c96b0fd61b2 which updated `write` function for unix sockets to use `sendto` syscall. - Added `sendto` to API and VMM filters And this PR: rust-lang/rust#115746 which added call to `gettid` during panic. - Added `gettid` to API, VMM and VCPU filters Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
This file contains hidden or 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