Skip to content

Remove i586-pc-windows-msvc - #137957

Merged
bors merged 1 commit into
rust-lang:masterfrom
Noratrieb:no
Mar 8, 2025
Merged

Remove i586-pc-windows-msvc#137957
bors merged 1 commit into
rust-lang:masterfrom
Noratrieb:no

Conversation

@Noratrieb

Copy link
Copy Markdown
Member

See MCP 840.

I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI).

error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead.
Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets

@workingjubilee@calebzulawski fyi portable-simd uses this target in CI, if you wanna remove it already before this happens

See MCP 840.
I left a specialized error message that should help users that hit this
in the wild (for example, because they use it in their CI).
@rustbot

Copy link
Copy Markdown
Collaborator

r? @cjgillot

rustbot has assigned @cjgillot.
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

@rustbotrustbot 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Mar 3, 2025
@rustbot

Copy link
Copy Markdown
Collaborator

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

Comment threadcompiler/rustc_target/src/spec/mod.rs
@aDotInTheVoidaDotInTheVoid added the relnotes Marks issues that should be documented in the release notes of the next release. label Mar 3, 2025
@cjgillot

Copy link
Copy Markdown
Contributor

r? compiler

@rustbotrustbot assigned wesleywiser and unassigned cjgillotMar 3, 2025

@wesleywiserwesleywiser left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Noratrieb

Copy link
Copy Markdown
MemberAuthor

I think these are just tests for the citool and are fully self contained. I could replace it there to make it less confusing but I chose not to to minimize the diff.

@wesleywiser

Copy link
Copy Markdown
Member

Thanks @Noratrieb!

@bors r+

@bors

bors commented Mar 7, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit b5562c0 has been approved by wesleywiser

It is now in the queue for this repository.

@borsbors 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 Mar 7, 2025
compiler-errors added a commit to compiler-errors/rust that referenced this pull request Mar 7, 2025
Remove i586-pc-windows-msvc
See [MCP 840](rust-lang/compiler-team#840).
I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI).
```
error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead.
Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets
```
`@workingjubilee` `@calebzulawski` fyi portable-simd uses this target in CI, if you wanna remove it already before this happens
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 7, 2025
…mpiler-errors
Rollup of 10 pull requests
Successful merges:
- rust-lang#135651 (Support for `wasm32-wali-linux-musl` Tier-3 target)
- rust-lang#136642 (Put the alloc unit tests in a separate alloctests package)
- rust-lang#137337 (Add verbatim linker to AIXLinker)
- rust-lang#137549 (Clean up various LLVM FFI things in codegen_llvm)
- rust-lang#137957 (Remove i586-pc-windows-msvc)
- rust-lang#138063 (Improve `-Zunpretty=hir` for parsed attrs)
- rust-lang#138137 (setTargetTriple now accepts Triple rather than string)
- rust-lang#138141 (tests: fix some typos in comment)
- rust-lang#138150 (Streamline HIR intravisit `visit_id` calls for items)
- rust-lang#138173 (Delay bug for negative auto trait rather than ICEing)
r? `@ghost`
`@rustbot` modify labels: rollup
@jhprattjhpratt mentioned this pull request Mar 8, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 8, 2025
Rollup of 12 pull requests
Successful merges:
- rust-lang#137337 (Add verbatim linker to AIXLinker)
- rust-lang#137363 (compiler: factor Windows x86-32 ABI impl into its own file)
- rust-lang#137537 (Prevent `rmake.rs` from using unstable features, and fix 3 run-make tests that currently do)
- rust-lang#137606 (add a "future" edition)
- rust-lang#137957 (Remove i586-pc-windows-msvc)
- rust-lang#138000 (atomic: clarify that failing conditional RMW operations are not 'writes')
- rust-lang#138013 (Add post-merge analysis CI workflow)
- rust-lang#138033 (rustdoc: Add attribute-related tests for rustdoc JSON.)
- rust-lang#138137 (setTargetTriple now accepts Triple rather than string)
- rust-lang#138173 (Delay bug for negative auto trait rather than ICEing)
- rust-lang#138184 (Allow anyone to relabel `CI-spurious-*`)
- rust-lang#138187 (remove clones)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 8cac259 into rust-lang:masterMar 8, 2025
@rustbotrustbot added this to the 1.87.0 milestone Mar 8, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Mar 8, 2025
Rollup merge of rust-lang#137957 - Noratrieb:no, r=wesleywiser
Remove i586-pc-windows-msvc
See [MCP 840](rust-lang/compiler-team#840).
I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI).
```
error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead.
Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets
```
``@workingjubilee`` ``@calebzulawski`` fyi portable-simd uses this target in CI, if you wanna remove it already before this happens
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
(backport <rust-lang#4311>)
(cherry picked from commit 33c320a)
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
(backport <rust-lang#4311>)
(cherry picked from commit 33c320a)
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
(backport <rust-lang#4311>)
(cherry picked from commit 33c320a)
tgross35 added a commit to tgross35/rust-libc that referenced this pull request Mar 10, 2025
Since [1], this target no longer exists so we need to remove it from CI.
[1]: rust-lang/rust#137957
(backport <rust-lang#4311>)
(cherry picked from commit 33c320a)
@Noratrieb
Noratrieb deleted the no branch May 13, 2025 09:44
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request May 19, 2025
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | minor | `1.86.0` -> `1.87.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.87.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1870-2025-05-15)
[Compare Source](rust-lang/rust@1.86.0...1.87.0)
\==========================
<a id="1.87.0-Language"></a>
## Language
- [Stabilize `asm_goto` feature](rust-lang/rust#133870)
- [Allow parsing open beginning ranges (`..EXPR`) after unary operators `!`, `-`, and `*`](rust-lang/rust#134900).
- [Don't require method impls for methods with `Self: Sized` bounds in `impl`s for unsized types](rust-lang/rust#135480)
- [Stabilize `feature(precise_capturing_in_traits)` allowing `use<...>` bounds on return position `impl Trait` in `trait`s](rust-lang/rust#138128)
<a id="1.87.0-Compiler"></a>
## Compiler
- [x86: make SSE2 required for i686 targets and use it to pass SIMD types](rust-lang/rust#135408)
<a id="1.87.0-Platform-Support"></a>
## Platform Support
- [Remove `i586-pc-windows-msvc` target](rust-lang/rust#137957)
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.87.0-Libraries"></a>
## Libraries
- [Stabilize the anonymous pipe API](rust-lang/rust#127154)
- [Add support for unbounded left/right shift operations](rust-lang/rust#129375)
- [Print pointer metadata in `Debug` impl of raw pointers](rust-lang/rust#135080)
- [`Vec::with_capacity` guarantees it allocates with the amount requested, even if `Vec::capacity` returns a different number.](rust-lang/rust#135933)
- Most `std::arch` intrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled (rust-lang/stdarch#1714, rust-lang/stdarch#1716, rust-lang/stdarch#1717)
- [Undeprecate `env::home_dir`](rust-lang/rust#137327)
- [Denote `ControlFlow` as `#[must_use]`](rust-lang/rust#137449)
- [Macros such as `assert_eq!` and `vec!` now support `const {...}` expressions](rust-lang/rust#138162)
<a id="1.87.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if)
- [`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html)
- [`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if)
- [`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html)
- [`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off)
- [`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut)
- [`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first)
- [`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut)
- [`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last)
- [`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut)
- [`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within)
- [`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html)
- [`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display)
- [`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display)
- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html)
- [`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html)
- [`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html)
- [`impl From<PipeReader> for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle)
- [`impl From<PipeWriter> for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle)
- [`impl From<PipeReader> for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html)
- [`impl From<PipeWriter> for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio)
- [`impl From<PipeReader> for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd)
- [`impl From<PipeWriter> for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd)
- [`Box<MaybeUninit<T>>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write)
- [`impl TryFrom<Vec<u8>> for String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String)
- [`<*const T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned)
- [`<*const T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned)
- [`<*mut T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1)
- [`<*mut T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1)
- [`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned)
- [`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned)
- [`<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed)
- [`NonZero::<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5).
- [`<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned).
- [`NonZero::<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5).
- [`<uN>::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of)
- [`<uN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl)
- [`<uN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr)
- [`<iN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl)
- [`<iN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr)
- [`<iN>::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint)
- [`<str>::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8)
- [`<str>::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_mut)
- [`<str>::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked)
- [`<str>::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8\_unchecked_mut)
These previously stable APIs are now stable in const contexts:
- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8\_mut.html)
- [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice)
- [`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip)
- [`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port),
- [`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip)
- [`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port),
- [`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip)
- [`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port)
- [`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo)
- [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id)
- [`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit)
- [`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace)
- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened)
- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut)
- [`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes)
- [`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str)
- [`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity)
- [`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes)
- [`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len)
- [`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty)
- [`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str)
- [`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec)
- [`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr)
- [`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice)
- [`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity)
- [`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len)
- [`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty)
- [`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice)
- [`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr)
<a id="1.87.0-Cargo"></a>
## Cargo
- [Add terminal integration via ANSI OSC 9;4 sequences](rust-lang/cargo#14615)
- [chore: bump openssl to v3](rust-lang/cargo#15232)
- [feat(package): add --exclude-lockfile flag](rust-lang/cargo#15234)
<a id="1.87.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Rust now raises an error for macro invocations inside the `#![crate_name]` attribute](rust-lang/rust#127581)
- [Unstable fields are now always considered to be inhabited](rust-lang/rust#133889)
- [Macro arguments of unary operators followed by open beginning ranges may now be matched differently](rust-lang/rust#134900)
- [Make `Debug` impl of raw pointers print metadata if present](rust-lang/rust#135080)
- [Warn against function pointers using unsupported ABI strings in dependencies](rust-lang/rust#135767)
- [Associated types on `dyn` types are no longer deduplicated](rust-lang/rust#136458)
- [Forbid attributes on `..` inside of struct patterns (`let Struct { #[attribute] .. }) =`](rust-lang/rust#136490)
- [Make `ptr_cast_add_auto_to_object` lint into hard error](rust-lang/rust#136764)
- Many `std::arch` intrinsics are now safe to call in some contexts, there may now be new `unused_unsafe` warnings in existing codebases.
- [Limit `width` and `precision` formatting options to 16 bits on all targets](rust-lang/rust#136932)
- [Turn order dependent trait objects future incompat warning into a hard error](rust-lang/rust#136968)
- [Denote `ControlFlow` as `#[must_use]`](rust-lang/rust#137449)
- [Windows: The standard library no longer links `advapi32`, except on win7.](rust-lang/rust#138233) Code such as C libraries that were relying on this assumption may need to explicitly link advapi32.
- [Proc macros can no longer observe expanded `cfg(true)` attributes.](rust-lang/rust#138844)
- [Start changing the internal representation of pasted tokens](rust-lang/rust#124141). Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a `tt` fragment specifier can often fix these macros.
- [Don't allow flattened format_args in const.](rust-lang/rust#139624)
<a id="1.87.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 20](rust-lang/rust#135763)
</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOSIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE5IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request May 20, 2025
Pkgsrc changes:
* patches adjustments to adapt to upstream changes & new versions
of included crates
* associated checksums++
Upstream changes relative to 1.86.0:
Version 1.87.0 (2025-05-15)
==========================
Language
--------
- [Stabilize `asm_goto` feature]
(rust-lang/rust#133870)
- [Allow parsing open beginning ranges (`..EXPR`) after unary
operators `!`, `~`, `-`, and `*`}]
(rust-lang/rust#134900).
- [Don't require method impls for methods with `Self: Sized` bounds
in `impl`s for unsized types]
(rust-lang/rust#135480)
- [Stabilize `feature(precise_capturing_in_traits)` allowing
`use<...>` bounds on return position `impl Trait` in `trait`s]
(rust-lang/rust#138128)
Compiler
--------
- [x86: make SSE2 required for i686 targets and use it to pass SIMD types]
(rust-lang/rust#135408)
Platform Support
----------------
- [Remove `i586-pc-windows-msvc` target]
(rust-lang/rust#137957)
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
---------
- [Stabilize the anonymous pipe API]
(rust-lang/rust#127154)
- [Add support for unbounded left/right shift operations]
(rust-lang/rust#129375)
- [Print pointer metadata in `Debug` impl of raw pointers]
(rust-lang/rust#135080)
- [`Vec::with_capacity` guarantees it allocates with the amount
requested, even if `Vec::capacity` returns a different number.]
(rust-lang/rust#135933)
- Most `std::arch` intrinsics which don't take pointer arguments
can now be called from safe code if the caller has the appropriate
target features already enabled
(rust-lang/stdarch#1714,
rust-lang/stdarch#1716,
rust-lang/stdarch#1717)
- [Undeprecate `env::home_dir`]
(rust-lang/rust#137327)
- [Denote `ControlFlow` as `#[must_use]`]
(rust-lang/rust#137449)
- [Macros such as `assert_eq!` and `vec!` now support `const {...}` expressions]
(rust-lang/rust#138162)
Stabilized APIs
---------------
- [`Vec::extract_if`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if)
- [`vec::ExtractIf`]
(https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html)
- [`LinkedList::extract_if`]
(https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if)
- [`linked_list::ExtractIf`]
(https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html)
- [`<[T]>::split_off`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off)
- [`<[T]>::split_off_mut`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut)
- [`<[T]>::split_off_first`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first)
- [`<[T]>::split_off_first_mut`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut)
- [`<[T]>::split_off_last`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last)
- [`<[T]>::split_off_last_mut`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut)
- [`String::extend_from_within`]
(https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within)
- [`os_str::Display`]
(https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html)
- [`OsString::display`]
(https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display)
- [`OsStr::display`]
(https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display)
- [`io::pipe`]
(https://doc.rust-lang.org/stable/std/io/fn.pipe.html)
- [`io::PipeReader`]
(https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html)
- [`io::PipeWriter`]
(https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html)
- [`impl From<PipeReader> for OwnedHandle`]
(https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle)
- [`impl From<PipeWriter> for OwnedHandle`]
(https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle)
- [`impl From<PipeReader> for Stdio`]
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html)
- [`impl From<PipeWriter> for Stdio`]
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio)
- [`impl From<PipeReader> for OwnedFd`]
(https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd)
- [`impl From<PipeWriter> for OwnedFd`]
(https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd)
- [`Box<MaybeUninit<T>>::write`]
(https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write)
- [`impl TryFrom<Vec<u8>> for String`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String)
- [`<*const T>::offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned)
- [`<*const T>::byte_offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned)
- [`<*mut T>::offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1)
- [`<*mut T>::byte_offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1)
- [`NonNull::offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned)
- [`NonNull::byte_offset_from_unsigned`]
(https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned)
- [`<uN>::cast_signed`]
(https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed)
- [`NonZero::<uN>::cast_signed`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5).
- [`<iN>::cast_unsigned`]
(https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned).
- [`NonZero::<iN>::cast_unsigned`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5).
- [`<uN>::is_multiple_of`]
(https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of)
- [`<uN>::unbounded_shl`]
(https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl)
- [`<uN>::unbounded_shr`]
(https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr)
- [`<iN>::unbounded_shl`]
(https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl)
- [`<iN>::unbounded_shr`]
(https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr)
- [`<iN>::midpoint`]
(https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint)
- [`<str>::from_utf8`]
(https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8)
- [`<str>::from_utf8_mut`]
(https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_mut)
- [`<str>::from_utf8_unchecked`]
(https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked)
- [`<str>::from_utf8_unchecked_mut`]
(https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked_mut)
These previously stable APIs are now stable in const contexts:
- [`core::str::from_utf8_mut`]
(https://doc.rust-lang.org/stable/std/str/fn.from_utf8_mut.html)
- [`<[T]>::copy_from_slice`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice)
- [`SocketAddr::set_ip`]
(https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip)
- [`SocketAddr::set_port`]
(https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port),
- [`SocketAddrV4::set_ip`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip)
- [`SocketAddrV4::set_port`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port),
- [`SocketAddrV6::set_ip`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip)
- [`SocketAddrV6::set_port`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port)
- [`SocketAddrV6::set_flowinfo`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo)
- [`SocketAddrV6::set_scope_id`]
(https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id)
- [`char::is_digit`]
(https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit)
- [`char::is_whitespace`]
(https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace)
- [`<[[T; N]]>::as_flattened`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened)
- [`<[[T; N]]>::as_flattened_mut`]
(https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut)
- [`String::into_bytes`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes)
- [`String::as_str`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str)
- [`String::capacity`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity)
- [`String::as_bytes`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes)
- [`String::len`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len)
- [`String::is_empty`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty)
- [`String::as_mut_str`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str)
- [`String::as_mut_vec`]
(https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec)
- [`Vec::as_ptr`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr)
- [`Vec::as_slice`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice)
- [`Vec::capacity`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity)
- [`Vec::len`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len)
- [`Vec::is_empty`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty)
- [`Vec::as_mut_slice`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice)
- [`Vec::as_mut_ptr`]
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr)
Cargo
-----
- [Add terminal integration via ANSI OSC 9;4 sequences]
(rust-lang/cargo#14615)
- [chore: bump openssl to v3]
(rust-lang/cargo#15232)
- [feat(package): add --exclude-lockfile flag]
(rust-lang/cargo#15234)
Compatibility Notes
-------------------
- [Rust now raises an error for macro invocations inside the
`#![crate_name]` attribute]
(rust-lang/rust#127581)
- [Unstable fields are now always considered to be inhabited]
(rust-lang/rust#133889)
- [Macro arguments of unary operators followed by open beginning
ranges may now be matched differently]
(rust-lang/rust#134900)
- [Make `Debug` impl of raw pointers print metadata if present]
(rust-lang/rust#135080)
- [Warn against function pointers using unsupported ABI strings in dependencies]
(rust-lang/rust#135767)
- [Associated types on `dyn` types are no longer deduplicated]
(rust-lang/rust#136458)
- [Forbid attributes on `..` inside of struct patterns (`let Struct
{ #[attribute] .. }) =`]
(rust-lang/rust#136490)
- [Make `ptr_cast_add_auto_to_object` lint into hard error]
(rust-lang/rust#136764)
- Many `std::arch` intrinsics are now safe to call in some contexts,
there may now be new `unused_unsafe` warnings in existing codebases.
- [Limit `width` and `precision` formatting options to 16 bits on all targets]
(rust-lang/rust#136932)
- [Turn order dependent trait objects future incompat warning into a hard error]
(rust-lang/rust#136968)
- [Denote `ControlFlow` as `#[must_use]`]
(rust-lang/rust#137449)
- [Windows: The standard library no longer links `advapi32`, except
on win7.] (rust-lang/rust#138233)
Code such as C libraries that were relying on this assumption
may need to explicitly link advapi32.
- [Proc macros can no longer observe expanded `cfg
(true)` attributes.](rust-lang/rust#138844)
- [Start changing the internal representation of pasted tokens]
(rust-lang/rust#124141). Certain invalid
declarative macros that were previously accepted in obscure
circumstances are now correctly rejected by the compiler. Use of
a `tt` fragment specifier can often fix these macros.
- [Don't allow flattened format_args in const.]
(rust-lang/rust#139624)
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 20]
(rust-lang/rust#135763)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-testsuiteArea: The testsuite used to check the correctness of rustcrelnotesMarks issues that should be documented in the release notes of the next release.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-infraRelevant 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.

7 participants

@Noratrieb@rustbot@cjgillot@wesleywiser@bors@jieyouxu@aDotInTheVoid