Commit 1305eb3
committed
rust191: add a package for rust 1.91.0.
Pkgsrc 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)1 parent a635ed3 commit 1305eb3
File tree
77 files changed
+3964
-0
lines changed- rust191
- files
- patches
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
77 files changed
+3964
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
0 commit comments