Skip to content
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

Promote riscv64gc-unknown-linux-musl to tier 2 #122049

Merged
merged 3 commits into from
Aug 6, 2024

Conversation

Amanieu
Copy link
Member

@Amanieu Amanieu commented Mar 5, 2024

No description provided.

@rustbot
Copy link
Collaborator

rustbot commented Mar 5, 2024

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Mar 5, 2024
@Amanieu
Copy link
Member Author

Amanieu commented Mar 5, 2024

I'm looking for a second target maintainer, this is required for tier 2 support.

cc @kraj @nmeum since you were involved in #82202

@kraj
Copy link
Contributor

kraj commented Mar 5, 2024

I'm looking for a second target maintainer, this is required for tier 2 support.

cc @kraj @nmeum since you were involved in #82202

@Amanieu I will be happy to help. Please add me.

Copy link
Contributor

@kraj kraj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Amanieu
Copy link
Member Author

Amanieu commented Mar 5, 2024

I've opened an MCP: rust-lang/compiler-team#728

@Amanieu Amanieu changed the title Promote riscv64gc-unknown-linux-gnu to tier 2 Promote riscv64gc-unknown-linux-musl to tier 2 Mar 6, 2024
@Mark-Simulacrum Mark-Simulacrum added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 9, 2024
@Mark-Simulacrum
Copy link
Member

This should probably update the platform support docs to indicate the tier 2 target.

@bors
Copy link
Contributor

bors commented Mar 12, 2024

☔ The latest upstream changes (presumably #122170) made this pull request unmergeable. Please resolve the merge conflicts.

@kraj
Copy link
Contributor

kraj commented Mar 12, 2024

☔ The latest upstream changes (presumably #122170) made this pull request unmergeable. Please resolve the merge conflicts.

@Amanieu this needs a manual rebase and push I guess

@Dylan-DPC Dylan-DPC added S-waiting-on-MCP Status: PR has a compiler MCP and is waiting for the compiler MCP to complete. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 1, 2024
@Amanieu Amanieu marked this pull request as ready for review June 22, 2024 15:05
@rustbot
Copy link
Collaborator

rustbot commented Jun 22, 2024

Some changes occurred in src/doc/rustc/src/platform-support

cc @Nilstrieb

These commits modify compiler targets.
(See the Target Tier Policy.)

@Amanieu Amanieu added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-MCP Status: PR has a compiler MCP and is waiting for the compiler MCP to complete. labels Jul 3, 2024
@Mark-Simulacrum
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Jul 4, 2024

📌 Commit 7478987 has been approved by Mark-Simulacrum

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 4, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 4, 2024
…imulacrum

Promote riscv64gc-unknown-linux-musl to tier 2
@bors
Copy link
Contributor

bors commented Jul 4, 2024

⌛ Testing commit 7478987 with merge 68cbdcb...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Aug 3, 2024

📌 Commit 9963a6c has been approved by Mark-Simulacrum

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 3, 2024
@bors
Copy link
Contributor

bors commented Aug 5, 2024

⌛ Testing commit 9963a6c with merge 9ed8bd5...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 5, 2024
…imulacrum

Promote riscv64gc-unknown-linux-musl to tier 2
@bors
Copy link
Contributor

bors commented Aug 5, 2024

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 5, 2024
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@tgross35
Copy link
Contributor

tgross35 commented Aug 5, 2024

@bors retry

Looks like some kind of networking error

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 5, 2024
tgross35 added a commit to tgross35/rust that referenced this pull request Aug 5, 2024
…-Simulacrum

Promote riscv64gc-unknown-linux-musl to tier 2
bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 5, 2024
Rollup of 8 pull requests

Successful merges:

 - rust-lang#122049 (Promote riscv64gc-unknown-linux-musl to tier 2)
 - rust-lang#125558 (Tweak type inference for `const` operands in inline asm)
 - rust-lang#128638 (run-make: enable msvc for `link-dedup`)
 - rust-lang#128647 (Enable msvc for link-args-order)
 - rust-lang#128649 (run-make: Enable msvc for `no-duplicate-libs` and `zero-extend-abi-param-passing`)
 - rust-lang#128656 (Enable msvc for run-make/rust-lld)
 - rust-lang#128688 (custom MIR: add support for tail calls)
 - rust-lang#128691 (Update `compiler-builtins` to 0.1.115)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 5, 2024
…iaskrgr

Rollup of 5 pull requests

Successful merges:

 - rust-lang#122049 (Promote riscv64gc-unknown-linux-musl to tier 2)
 - rust-lang#128580 (Use `ParamEnv::reveal_all` in CFI)
 - rust-lang#128688 (custom MIR: add support for tail calls)
 - rust-lang#128694 (Normalize when equating `dyn` tails in MIR borrowck)
 - rust-lang#128697 (interpret: move nullary-op evaluation into operator.rs)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 8cbf1c1 into rust-lang:master Aug 6, 2024
6 of 7 checks passed
@rustbot rustbot added this to the 1.82.0 milestone Aug 6, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Aug 6, 2024
Rollup merge of rust-lang#122049 - Amanieu:riscv64-musl-tier2, r=Mark-Simulacrum

Promote riscv64gc-unknown-linux-musl to tier 2
@Mark-Simulacrum Mark-Simulacrum added relnotes Marks issues that should be documented in the release notes of the next release. and removed relnotes Marks issues that should be documented in the release notes of the next release. labels Oct 2, 2024
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 18, 2024
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | minor | `1.81.0` -> `1.82.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.82.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1820-2024-10-17)

[Compare Source](rust-lang/rust@1.81.0...1.82.0)

\==========================

<a id="1.82.0-Language"></a>

## Language

-   [Don't make statement nonterminals match pattern nonterminals](rust-lang/rust#120221)
-   [Patterns matching empty types can now be omitted in common cases](rust-lang/rust#122792)
-   [Enforce supertrait outlives obligations when using trait impls](rust-lang/rust#124336)
-   [`addr_of(_mut)!` macros and the newly stabilized `&raw (const|mut)` are now safe to use with all static items](rust-lang/rust#125834)
-   [size_of_val_raw: for length 0 this is safe to call](rust-lang/rust#126152)
-   [Reorder trait bound modifiers *after* `for<...>` binder in trait bounds](rust-lang/rust#127054)
-   [Stabilize opaque type precise capturing (RFC 3617)](rust-lang/rust#127672)
-   [Stabilize `&raw const` and `&raw mut` operators (RFC 2582)](rust-lang/rust#127679)
-   [Stabilize unsafe extern blocks (RFC 3484)](rust-lang/rust#127921)
-   [Stabilize nested field access in `offset_of!`](rust-lang/rust#128284)
-   [Do not require `T` to be live when dropping `[T; 0]`](rust-lang/rust#128438)
-   [Stabilize `const` operands in inline assembly](rust-lang/rust#128570)
-   [Stabilize floating-point arithmetic in `const fn`](rust-lang/rust#128596)
-   [Stabilize explicit opt-in to unsafe attributes](rust-lang/rust#128771)
-   [Document NaN bit patterns guarantees](rust-lang/rust#129559)

<a id="1.82.0-Compiler"></a>

## Compiler

-   [Promote riscv64gc-unknown-linux-musl to tier 2](rust-lang/rust#122049)
-   [Promote Mac Catalyst targets `aarch64-apple-ios-macabi` and `x86_64-apple-ios-macabi` to Tier 2, and ship them with rustup](rust-lang/rust#126450)
-   [Add tier 3 NuttX based targets for RISC-V and ARM](rust-lang/rust#127755)
-   [Add tier 3 powerpc-unknown-linux-muslspe target](rust-lang/rust#127905)
-   [Improved diagnostics to explain why a pattern is unreachable](rust-lang/rust#128034)
-   [The compiler now triggers the unreachable code warning properly for async functions that don't return/are `-> !`](rust-lang/rust#128443)
-   [Promote `aarch64-apple-darwin` to Tier 1](rust-lang/rust#128592)
-   [Add Trusty OS target `aarch64-unknown-trusty` and `armv7-unknown-trusty` as tier 3 targets](rust-lang/rust#129490)
-   [Promote `wasm32-wasip2` to Tier 2.](rust-lang/rust#126967)

<a id="1.82.0-Libraries"></a>

## Libraries

-   [Generalize `{Rc,Arc}::make_mut()` to `Path`, `OsStr`, and `CStr`.](rust-lang/rust#126877)

<a id="1.82.0-Stabilized-APIs"></a>

## Stabilized APIs

-   [`std::thread::Builder::spawn_unchecked`](https://doc.rust-lang.org/stable/std/thread/struct.Builder.html#method.spawn_unchecked)
-   [`std::str::CharIndices::offset`](https://doc.rust-lang.org/nightly/std/str/struct.CharIndices.html#method.offset)
-   [`std::option::Option::is_none_or`](https://doc.rust-lang.org/nightly/std/option/enum.Option.html#method.is_none_or)
-   [`[T]::is_sorted`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted)
-   [`[T]::is_sorted_by`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by)
-   [`[T]::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by_key)
-   [`Iterator::is_sorted`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted)
-   [`Iterator::is_sorted_by`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by)
-   [`Iterator::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by_key)
-   [`std::future::Ready::into_inner`](https://doc.rust-lang.org/nightly/std/future/struct.Ready.html#method.into_inner)
-   [`std::iter::repeat_n`](https://doc.rust-lang.org/nightly/std/iter/fn.repeat_n.html)
-   [`impl<T: Clone> DoubleEndedIterator for Take<Repeat<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E)
-   [`impl<T: Clone> ExactSizeIterator for Take<Repeat<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E)
-   [`impl<T: Clone> ExactSizeIterator for Take<RepeatWith<T>>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E)
-   [`impl Default for std::collections::binary_heap::Iter`](https://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Iter.html#impl-Default-for-Iter%3C'\_,+T%3E)
-   [`impl Default for std::collections::btree_map::RangeMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.RangeMut.html#impl-Default-for-RangeMut%3C'\_,+K,+V%3E)
-   [`impl Default for std::collections::btree_map::ValuesMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'\_,+K,+V%3E)
-   [`impl Default for std::collections::vec_deque::Iter`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Iter.html#impl-Default-for-Iter%3C'\_,+T%3E)
-   [`impl Default for std::collections::vec_deque::IterMut`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.IterMut.html#impl-Default-for-IterMut%3C'\_,+T%3E)
-   [`Rc<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit)
-   [`Rc<T>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init)
-   [`Rc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit_slice)
-   [`Rc<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init-1)
-   [`Arc<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit)
-   [`Arc<T>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init)
-   [`Arc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit_slice)
-   [`Arc<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init-1)
-   [`Box<T>::new_uninit`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit)
-   [`Box<T>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init)
-   [`Box<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit_slice)
-   [`Box<[MaybeUninit<T>]>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init-1)
-   [`core::arch::x86_64::_bextri_u64`](https://doc.rust-lang.org/stable/core/arch/x86\_64/fn.\_bextri_u64.html)
-   [`core::arch::x86_64::_bextri_u32`](https://doc.rust-lang.org/stable/core/arch/x86\_64/fn.\_bextri_u32.html)
-   [`core::arch::x86::_mm_broadcastsi128_si256`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_broadcastsi128\_si256.html)
-   [`core::arch::x86::_mm256_stream_load_si256`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm256\_stream_load_si256.html)
-   [`core::arch::x86::_tzcnt_u16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_tzcnt_u16.html)
-   [`core::arch::x86::_mm_extracti_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_extracti_si64.html)
-   [`core::arch::x86::_mm_inserti_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_inserti_si64.html)
-   [`core::arch::x86::_mm_storeu_si16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si16.html)
-   [`core::arch::x86::_mm_storeu_si32`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si32.html)
-   [`core::arch::x86::_mm_storeu_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_storeu_si64.html)
-   [`core::arch::x86::_mm_loadu_si16`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_loadu_si16.html)
-   [`core::arch::x86::_mm_loadu_si32`](https://doc.rust-lang.org/stable/core/arch/x86/fn.\_mm_loadu_si32.html)
-   [`core::arch::wasm32::u8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16\_relaxed_swizzle.html)
-   [`core::arch::wasm32::i8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16\_relaxed_swizzle.html)
-   [`core::arch::wasm32::i32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_trunc_f32x4.html)
-   [`core::arch::wasm32::u32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_trunc_f32x4.html)
-   [`core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_trunc_f64x2\_zero.html)
-   [`core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_trunc_f64x2\_zero.html)
-   [`core::arch::wasm32::f32x4_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_madd.html)
-   [`core::arch::wasm32::f32x4_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_nmadd.html)
-   [`core::arch::wasm32::f64x2_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_madd.html)
-   [`core::arch::wasm32::f64x2_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_nmadd.html)
-   [`core::arch::wasm32::i8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16\_relaxed_laneselect.html)
-   [`core::arch::wasm32::u8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16\_relaxed_laneselect.html)
-   [`core::arch::wasm32::i16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8\_relaxed_laneselect.html)
-   [`core::arch::wasm32::u16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8\_relaxed_laneselect.html)
-   [`core::arch::wasm32::i32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_laneselect.html)
-   [`core::arch::wasm32::u32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_laneselect.html)
-   [`core::arch::wasm32::i64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i64x2\_relaxed_laneselect.html)
-   [`core::arch::wasm32::u64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u64x2\_relaxed_laneselect.html)
-   [`core::arch::wasm32::f32x4_relaxed_min`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_min.html)
-   [`core::arch::wasm32::f32x4_relaxed_max`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4\_relaxed_max.html)
-   [`core::arch::wasm32::f64x2_relaxed_min`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_min.html)
-   [`core::arch::wasm32::f64x2_relaxed_max`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2\_relaxed_max.html)
-   [`core::arch::wasm32::i16x8_relaxed_q15mulr`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8\_relaxed_q15mulr.html)
-   [`core::arch::wasm32::u16x8_relaxed_q15mulr`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8\_relaxed_q15mulr.html)
-   [`core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8\_relaxed_dot_i8x16\_i7x16.html)
-   [`core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8\_relaxed_dot_i8x16\_i7x16.html)
-   [`core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4\_relaxed_dot_i8x16\_i7x16\_add.html)
-   [`core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4\_relaxed_dot_i8x16\_i7x16\_add.html)

These APIs are now stable in const contexts:

-   [`std::task::Waker::from_raw`](https://doc.rust-lang.org/nightly/std/task/struct.Waker.html#method.from_raw)
-   [`std::task::Context::from_waker`](https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.from_waker)
-   [`std::task::Context::waker`](https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.waker)
-   [`$integer::from_str_radix`](https://doc.rust-lang.org/nightly/std/primitive.u32.html#method.from_str_radix)
-   [`std::num::ParseIntError::kind`](https://doc.rust-lang.org/nightly/std/num/struct.ParseIntError.html#method.kind)

<a id="1.82.0-Cargo"></a>

## Cargo

-   [feat: Add `info` cargo subcommand](rust-lang/cargo#14141)

<a id="1.82.0-Compatibility-Notes"></a>

## Compatibility Notes

-   We now [disallow setting some built-in cfgs via the command-line](rust-lang/rust#126158) with the newly added [`explicit_builtin_cfgs_in_flags`](https://doc.rust-lang.org/rustc/lints/listing/deny-by-default.html#explicit-builtin-cfgs-in-flags) lint in order to prevent incoherent state, eg. `windows` cfg active but target is Linux based. The appropriate [`rustc` flag](https://doc.rust-lang.org/rustc/command-line-arguments.html) should be used instead.
-   The standard library has a new implementation of `binary_search` which is significantly improves performance ([#&#8203;128254](rust-lang/rust#128254)). However when a sorted slice has multiple values which compare equal, the new implementation may select a different value among the equal ones than the old implementation.
-   [illumos/Solaris now sets `MSG_NOSIGNAL` when writing to sockets](rust-lang/rust#128259). This avoids killing the process with SIGPIPE when writing to a closed socket, which matches the existing behavior on other UNIX targets.
-   [Removes a problematic hack that always passed the --whole-archive linker flag for tests, which may cause linker errors for code accidentally relying on it.](rust-lang/rust#128400)
-   The WebAssembly target features `multivalue` and `reference-types` are now
    both enabled by default. These two features both have subtle changes implied
    for generated WebAssembly binaries. For the `multivalue` feature, WebAssembly
    target support has changed when upgrading to LLVM 19. Support for generating
    functions with multiple returns no longer works and
    `-Ctarget-feature=+multivalue` has a different meaning than it did in LLVM 18
    and prior. There is no longer any supported means to generate a module that has
    a function with multiple returns in WebAssembly from Rust source code. For the
    `reference-types` feature the encoding of immediates in the `call_indirect`, a
    commonly used instruction by the WebAssembly backend, has changed. Validators
    and parsers which don't understand the `reference-types` proposal will no
    longer accept modules produced by LLVM due to this change in encoding of
    immediates. Additionally these features being enabled are encoded in the
    `target_features` custom section and may affect downstream tooling such as
    `wasm-opt` consuming the module. Generating a WebAssembly module that disables
    default features requires `-Zbuild-std` support from Cargo and more information
    can be found at
    [rust-lang/rust#128511](rust-lang/rust#128511).
-   [Rust now raises unsafety errors for union patterns in parameter-position](rust-lang/rust#130531)

<a id="1.82.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 19](rust-lang/rust#127513)

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
kxxt added a commit to kxxt/archriscv-packages that referenced this pull request Oct 20, 2024
Musl Patch
==========

riscv64gc-unknown-linux-musl gets promoted to tier 2 and `crt_static_default`
is updated to false in rust-lang/rust#122049,
which triggers rust-lang/rust#82521 (comment)
when building stage2 library artifacts
(riscv64gc-unknown-linux-gnu -> riscv64gc-unknown-linux-musl).

I patched it to re-enable `crt_static_default` for `riscv64gc-unknown-linux-musl`
to fix the build and align with the behavior on x86 Arch Linux, where `rust-musl`
defaults to statically link musl.

Wasm compiler_builtins bug
==========================

Wasm compiler_builtins rlib from built `rust-wasm` package includes objects for
host architecture(riscv64 in our case, and x86_64 for x86 Arch Linux).
This is not reproducible for toolchains installed via rustup so I have reported it
to Arch Linux:
https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3

Complications when building 1.82.0
==================================

rust-lang/rust#125016 landed in 1.82.0, which breaks
building rust 1.82.0 using our packaged rust 1.81.0.
Compiling the new compiler_builtins component requires a rustc compiler that
includes
rust-lang/rust@99e6a28
but unfortunately 1.81.0 does not, leading to the following ICE:
https://archriscv.felixc.at/.status/log.htm?url=logs/rust/rust-1:1.82.0-1.log

    internal compiler error: compiler/rustc_codegen_llvm/src/abi.rs:126:22: unsupported float: Reg { kind: Float, size: Size(2 bytes) }

This is mitigated upstream by bumping stage0 to 1.82:
rust-lang/rust#129268 (comment)

So we need to first build 1.82.0 rustc once without the f16/f128 handling part
in compiler_builtins, to get a compiler that is capable of handling f16/f128.
And then we can use this compiler to compile compiler_builtins with f16/f128 handling.
It's not easy to do so in one patch. The most easy way is to build and package
rust 1.82.0 twice. This PR covers the first part and disable-f16-f128.diff will
be removed in the second part.
kxxt added a commit to kxxt/archriscv-packages that referenced this pull request Oct 20, 2024
Musl Patch
==========

riscv64gc-unknown-linux-musl gets promoted to tier 2 and `crt_static_default`
is updated to false in rust-lang/rust#122049,
which triggers rust-lang/rust#82521 (comment)
when building stage2 library artifacts
(riscv64gc-unknown-linux-gnu -> riscv64gc-unknown-linux-musl).

I patched it to re-enable `crt_static_default` for `riscv64gc-unknown-linux-musl`
to fix the build and align with the behavior on x86 Arch Linux, where `rust-musl`
defaults to statically link musl.

Wasm compiler_builtins bug
==========================

Wasm compiler_builtins rlib from built `rust-wasm` package includes objects for
host architecture(riscv64 in our case, and x86_64 for x86 Arch Linux).
This is not reproducible for toolchains installed via rustup so I have reported it
to Arch Linux:
https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3

Complications when building 1.82.0
==================================

rust-lang/rust#125016 landed in 1.82.0, which breaks
building rust 1.82.0 using our packaged rust 1.81.0.
Compiling the new compiler_builtins component requires a rustc compiler that
includes
rust-lang/rust@99e6a28
but unfortunately 1.81.0 does not, leading to the following ICE:
https://archriscv.felixc.at/.status/log.htm?url=logs/rust/rust-1:1.82.0-1.log

    internal compiler error: compiler/rustc_codegen_llvm/src/abi.rs:126:22: unsupported float: Reg { kind: Float, size: Size(2 bytes) }

This is mitigated upstream by bumping stage0 to 1.82:
rust-lang/rust#129268 (comment)

So we need to first build 1.82.0 rustc once without the f16/f128 handling part
in compiler_builtins, to get a compiler that is capable of handling f16/f128.
And then we can use this compiler to compile compiler_builtins with f16/f128 handling.
It's not easy to do so in one patch. The most easy way is to build and package
rust 1.82.0 twice. This PR covers the first part and disable-f16-f128.diff will
be removed in the second part.
felixonmars pushed a commit to felixonmars/archriscv-packages that referenced this pull request Oct 20, 2024
Musl Patch
==========

riscv64gc-unknown-linux-musl gets promoted to tier 2 and `crt_static_default`
is updated to false in rust-lang/rust#122049,
which triggers rust-lang/rust#82521 (comment)
when building stage2 library artifacts
(riscv64gc-unknown-linux-gnu -> riscv64gc-unknown-linux-musl).

I patched it to re-enable `crt_static_default` for `riscv64gc-unknown-linux-musl`
to fix the build and align with the behavior on x86 Arch Linux, where `rust-musl`
defaults to statically link musl.

Wasm compiler_builtins bug
==========================

Wasm compiler_builtins rlib from built `rust-wasm` package includes objects for
host architecture(riscv64 in our case, and x86_64 for x86 Arch Linux).
This is not reproducible for toolchains installed via rustup so I have reported it
to Arch Linux:
https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3

Complications when building 1.82.0
==================================

rust-lang/rust#125016 landed in 1.82.0, which breaks
building rust 1.82.0 using our packaged rust 1.81.0.
Compiling the new compiler_builtins component requires a rustc compiler that
includes
rust-lang/rust@99e6a28
but unfortunately 1.81.0 does not, leading to the following ICE:
https://archriscv.felixc.at/.status/log.htm?url=logs/rust/rust-1:1.82.0-1.log

    internal compiler error: compiler/rustc_codegen_llvm/src/abi.rs:126:22: unsupported float: Reg { kind: Float, size: Size(2 bytes) }

This is mitigated upstream by bumping stage0 to 1.82:
rust-lang/rust#129268 (comment)

So we need to first build 1.82.0 rustc once without the f16/f128 handling part
in compiler_builtins, to get a compiler that is capable of handling f16/f128.
And then we can use this compiler to compile compiler_builtins with f16/f128 handling.
It's not easy to do so in one patch. The most easy way is to build and package
rust 1.82.0 twice. This PR covers the first part and disable-f16-f128.diff will
be removed in the second part.
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request Oct 27, 2024
Pkgsrc changes:
 * Adapt patches, apply to new vendored crates where needed.
 * Back-port rust pull request 130110, "make dist vendoring configurable"
 * Disable "dist vendoring", otherwise cargo would try to access
   the network during the build phase.

Upstream changes:

Version 1.82.0 (2024-10-17)
==========================

Language
--------
- [Don't make statement nonterminals match pattern nonterminals]
  (rust-lang/rust#120221)
- [Patterns matching empty types can now be omitted in common cases]
  (rust-lang/rust#122792)
- [Enforce supertrait outlives obligations when using trait impls]
  (rust-lang/rust#124336)
- [`addr_of(_mut)!` macros and the newly stabilized `&raw (const|mut)`
  are now safe to use with all static items]
  (rust-lang/rust#125834)
- [size_of_val_raw: for length 0 this is safe to call]
  (rust-lang/rust#126152)
- [Reorder trait bound modifiers *after* `for<...>` binder in trait bounds]
  (rust-lang/rust#127054)
- [Stabilize opaque type precise capturing (RFC 3617)]
  (rust-lang/rust#127672)
- [Stabilize `&raw const` and `&raw mut` operators (RFC 2582)]
  (rust-lang/rust#127679)
- [Stabilize unsafe extern blocks (RFC 3484)]
  (rust-lang/rust#127921)
- [Stabilize nested field access in `offset_of!`]
  (rust-lang/rust#128284)
- [Do not require `T` to be live when dropping `[T; 0]`]
  (rust-lang/rust#128438)
- [Stabilize `const` operands in inline assembly]
  (rust-lang/rust#128570)
- [Stabilize floating-point arithmetic in `const fn`]
  (rust-lang/rust#128596)
- [Stabilize explicit opt-in to unsafe attributes]
  (rust-lang/rust#128771)
- [Document NaN bit patterns guarantees]
  (rust-lang/rust#129559)

Compiler
--------
- [Promote riscv64gc-unknown-linux-musl to tier 2]
  (rust-lang/rust#122049)
- [Promote Mac Catalyst targets `aarch64-apple-ios-macabi` and
  `x86_64-apple-ios-macabi` to Tier 2, and ship them with rustup]
  (rust-lang/rust#126450)
- [Add tier 3 NuttX based targets for RISC-V and ARM]
  (rust-lang/rust#127755)
- [Add tier 3 powerpc-unknown-linux-muslspe target]
  (rust-lang/rust#127905)
- [Improved diagnostics to explain why a pattern is unreachable]
  (rust-lang/rust#128034)
- [The compiler now triggers the unreachable code warning properly
  for async functions that don't return/are `-> !`]
  (rust-lang/rust#128443)
- [Promote `aarch64-apple-darwin` to Tier 1]
  (rust-lang/rust#128592)
- [Add Trusty OS target `aarch64-unknown-trusty` and `armv7-unknown-trusty`
  as tier 3 targets] (rust-lang/rust#129490)
- [Promote `wasm32-wasip2` to Tier 2.]
  (rust-lang/rust#126967)

Libraries
---------
- [Generalize `{Rc,Arc}::make_mut()` to `Path`, `OsStr`, and `CStr`.]
  (rust-lang/rust#126877)

Stabilized APIs
---------------
- [`std::thread::Builder::spawn_unchecked`]
  (https://doc.rust-lang.org/stable/std/thread/struct.Builder.html#method.spawn_unchecked)
- [`std::str::CharIndices::offset`]
  (https://doc.rust-lang.org/nightly/std/str/struct.CharIndices.html#method.offset)
- [`std::option::Option::is_none_or`]
  (https://doc.rust-lang.org/nightly/std/option/enum.Option.html#method.is_none_or)
- [`[T]::is_sorted`]
  (https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted)
- [`[T]::is_sorted_by`]
  (https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by)
- [`[T]::is_sorted_by_key`]
  (https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by_key)
- [`Iterator::is_sorted`]
  (https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted)
- [`Iterator::is_sorted_by`]
  (https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by)
- [`Iterator::is_sorted_by_key`]
  (https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by_key)
- [`std::future::Ready::into_inner`]
  (https://doc.rust-lang.org/nightly/std/future/struct.Ready.html#method.into_inner)
- [`std::iter::repeat_n`]
  (https://doc.rust-lang.org/nightly/std/iter/fn.repeat_n.html)
- [`impl<T: Clone> DoubleEndedIterator for Take<Repeat<T>>`]
  (https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E)
- [`impl<T: Clone> ExactSizeIterator for Take<Repeat<T>>`]
  (https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E)
- [`impl<T: Clone> ExactSizeIterator for Take<RepeatWith<T>>`]
  (https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E)
- [`impl Default for std::collections::binary_heap::Iter`]
  (https://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E)
- [`impl Default for std::collections::btree_map::RangeMut`]
  (https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.RangeMut.html#impl-Default-for-RangeMut%3C'_,+K,+V%3E)
- [`impl Default for std::collections::btree_map::ValuesMut`]
  (https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'_,+K,+V%3E)
- [`impl Default for std::collections::vec_deque::Iter`]
  (https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E)
- [`impl Default for std::collections::vec_deque::IterMut`]
  (https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.IterMut.html#impl-Default-for-IterMut%3C'_,+T%3E)
- [`Rc<T>::new_uninit`]
  (https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit)
- [`Rc<T>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init)
- [`Rc<[T]>::new_uninit_slice`]
  (https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit_slice)
- [`Rc<[MaybeUninit<T>]>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init-1)
- [`Arc<T>::new_uninit`]
  (https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit)
- [`Arc<T>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init)
- [`Arc<[T]>::new_uninit_slice`]
  (https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit_slice)
- [`Arc<[MaybeUninit<T>]>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init-1)
- [`Box<T>::new_uninit`]
  (https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit)
- [`Box<T>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init)
- [`Box<[T]>::new_uninit_slice`]
  (https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit_slice)
- [`Box<[MaybeUninit<T>]>::assume_init`]
  (https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init-1)
- [`core::arch::x86_64::_bextri_u64`]
  (https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bextri_u64.html)
- [`core::arch::x86_64::_bextri_u32`]
  (https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bextri_u32.html)
- [`core::arch::x86::_mm_broadcastsi128_si256`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_broadcastsi128_si256.html)
- [`core::arch::x86::_mm256_stream_load_si256`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm256_stream_load_si256.html)
- [`core::arch::x86::_tzcnt_u16`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._tzcnt_u16.html)
- [`core::arch::x86::_mm_extracti_si64`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_extracti_si64.html)
- [`core::arch::x86::_mm_inserti_si64`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_inserti_si64.html)
- [`core::arch::x86::_mm_storeu_si16`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_storeu_si16.html)
- [`core::arch::x86::_mm_storeu_si32`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_storeu_si32.html)
- [`core::arch::x86::_mm_storeu_si64`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_storeu_si64.html)
- [`core::arch::x86::_mm_loadu_si16`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_loadu_si16.html)
- [`core::arch::x86::_mm_loadu_si32`]
  (https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_loadu_si32.html)
- [`core::arch::wasm32::u8x16_relaxed_swizzle`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16_relaxed_swizzle.html)
- [`core::arch::wasm32::i8x16_relaxed_swizzle`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16_relaxed_swizzle.html)
- [`core::arch::wasm32::i32x4_relaxed_trunc_f32x4`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_trunc_f32x4.html)
- [`core::arch::wasm32::u32x4_relaxed_trunc_f32x4`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_trunc_f32x4.html)
- [`core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_trunc_f64x2_zero.html)
- [`core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_trunc_f64x2_zero.html)
- [`core::arch::wasm32::f32x4_relaxed_madd`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_madd.html)
- [`core::arch::wasm32::f32x4_relaxed_nmadd`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_nmadd.html)
- [`core::arch::wasm32::f64x2_relaxed_madd`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_madd.html)
- [`core::arch::wasm32::f64x2_relaxed_nmadd`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_nmadd.html)
- [`core::arch::wasm32::i8x16_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16_relaxed_laneselect.html)
- [`core::arch::wasm32::u8x16_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16_relaxed_laneselect.html)
- [`core::arch::wasm32::i16x8_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_laneselect.html)
- [`core::arch::wasm32::u16x8_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_laneselect.html)
- [`core::arch::wasm32::i32x4_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_laneselect.html)
- [`core::arch::wasm32::u32x4_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_laneselect.html)
- [`core::arch::wasm32::i64x2_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i64x2_relaxed_laneselect.html)
- [`core::arch::wasm32::u64x2_relaxed_laneselect`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u64x2_relaxed_laneselect.html)
- [`core::arch::wasm32::f32x4_relaxed_min`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_min.html)
- [`core::arch::wasm32::f32x4_relaxed_max`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_max.html)
- [`core::arch::wasm32::f64x2_relaxed_min`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_min.html)
- [`core::arch::wasm32::f64x2_relaxed_max`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_max.html)
- [`core::arch::wasm32::i16x8_relaxed_q15mulr`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_q15mulr.html)
- [`core::arch::wasm32::u16x8_relaxed_q15mulr`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_q15mulr.html)
- [`core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_dot_i8x16_i7x16.html)
- [`core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_dot_i8x16_i7x16.html)
- [`core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_dot_i8x16_i7x16_add.html)
- [`core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add`]
  (https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_dot_i8x16_i7x16_add.html)

These APIs are now stable in const contexts:

- [`std::task::Waker::from_raw`]
  (https://doc.rust-lang.org/nightly/std/task/struct.Waker.html#method.from_raw)
- [`std::task::Waker::waker`]
  (https://doc.rust-lang.org/nightly/std/task/struct.Waker.html#method.from_raw)
- [`std::task::Context::from_waker`]
  (https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.from_waker)
- [`std::task::Context::waker`]
  (https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.waker)
- [`$integer::from_str_radix`]
  (https://doc.rust-lang.org/nightly/std/primitive.u32.html#method.from_str_radix)
- [`std::num::ParseIntError::kind`]
  (https://doc.rust-lang.org/nightly/std/num/struct.ParseIntError.html#method.kind)

Cargo
-----
- [feat: Add `info` cargo subcommand]
  (rust-lang/cargo#14141)

Compatibility Notes
-------------------
 - We now [disallow setting some built-in cfgs via the
   command-line](rust-lang/rust#126158) with
   the newly added
   [`explicit_builtin_cfgs_in_flags`]
   (https://doc.rust-lang.org/rustc/lints/listing/deny-by-default.html#explicit-builtin-cfgs-in-flags)
   lint in order to prevent incoherent state, eg. `windows` cfg active
   but target is Linux based. The appropriate [`rustc` flag]
   (https://doc.rust-lang.org/rustc/command-line-arguments.html)
   should be used instead.

- The standard library has a new implementation of `binary_search`
  which is significantly improves performance
  ([#128254](rust-lang/rust#128254)). However
  when a sorted slice has multiple values which compare equal, the
  new implementation may select a different value among the equal
  ones than the old implementation.

- [illumos/Solaris now sets `MSG_NOSIGNAL` when writing to
  sockets](rust-lang/rust#128259). This avoids
  killing the process with SIGPIPE when writing to a closed socket,
  which matches the existing behavior on other UNIX targets.

- [Removes a problematic hack that always passed the --whole-archive
  linker flag for tests, which may cause linker errors for code
  accidentally relying on it.]
  (rust-lang/rust#128400)

- The WebAssembly target features `multivalue` and `reference-types`
  are now both enabled by default. These two features both have
  subtle changes implied for generated WebAssembly binaries. For
  the `multivalue` feature, WebAssembly target support has changed
  when upgrading to LLVM 19. Support for generating functions with
  multiple returns no longer works and `-Ctarget-feature=+multivalue`
  has a different meaning than it did in LLVM 18 and prior. There
  is no longer any supported means to generate a module that has
  a function with multiple returns in WebAssembly from Rust source
  code. For the `reference-types` feature the encoding of immediates
  in the `call_indirect`, a commonly used instruction by the
  WebAssembly backend, has changed. Validators and parsers which
  don't understand the `reference-types` proposal will no longer
  accept modules produced by LLVM due to this change in encoding
  of immediates. Additionally these features being enabled are
  encoded in the `target_features` custom section and may affect
  downstream tooling such as `wasm-opt` consuming the module.
  Generating a WebAssembly module that disables default features
  requires `-Zbuild-std` support from Cargo and more information
  can be found at
  [rust-lang/rust#128511](rust-lang/rust#128511).
- [Rust now raises unsafety errors for union patterns in parameter-position]
  (rust-lang/rust#130531)

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 19]
  (rust-lang/rust#127513)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants