Skip to content

NVPTX: Drop support for old architectures and old ISAs#152443

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
kjetilkjeka:nvptx_drop_support_old_hw_and_isa
Apr 29, 2026
Merged

NVPTX: Drop support for old architectures and old ISAs#152443
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
kjetilkjeka:nvptx_drop_support_old_hw_and_isa

Conversation

@kjetilkjeka

@kjetilkjeka kjetilkjeka commented Feb 10, 2026

Copy link
Copy Markdown
Contributor

View all comments

This is the implementation of this MCP

I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.

@rustbot

rustbot commented Feb 10, 2026

Copy link
Copy Markdown
Collaborator

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

cc @Noratrieb

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. 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. labels Feb 10, 2026
@rustbot

rustbot commented Feb 10, 2026

Copy link
Copy Markdown
Collaborator

r? @jackh726

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

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 66 candidates
  • Random selection from 13 candidates

@kjetilkjeka

Copy link
Copy Markdown
Contributor Author

r? @ZuseZ4

@rustbot rustbot assigned ZuseZ4 and unassigned jackh726 Feb 10, 2026
@kjetilkjeka

Copy link
Copy Markdown
Contributor Author

CC: @workingjubilee @kulst

@kjetilkjeka

Copy link
Copy Markdown
Contributor Author

@rustbot label +O-NVPTX

@rustbot rustbot added the O-NVPTX Target: the NVPTX LLVM backend for running rust on GPUs, https://llvm.org/docs/NVPTXUsage.html label Feb 10, 2026
Comment thread compiler/rustc_target/src/target_features.rs
@kjetilkjeka kjetilkjeka changed the title NVPTX: Drop support for old hw and old ISAs NVPTX: Drop support for old architectures and old ISAs Feb 10, 2026
@rust-log-analyzer

This comment has been minimized.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch from af90fab to 192c99f Compare February 10, 2026 16:53
@rust-log-analyzer

This comment has been minimized.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch from 192c99f to a516a55 Compare February 10, 2026 17:44
@rust-log-analyzer

This comment has been minimized.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch from a516a55 to 5f88388 Compare February 10, 2026 17:55
@rust-log-analyzer

This comment has been minimized.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch 3 times, most recently from 4cbf1bb to 9026a42 Compare February 10, 2026 21:12
@ZuseZ4

ZuseZ4 commented Feb 11, 2026

Copy link
Copy Markdown
Member

Changing a target baseline officially doesn't require a blog post: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#other-kind-of-target-changes

But since it's afaik the first time that we raise it for a GPU target and since nvptx is Tier 2, would you mind to still write one, so that we could merge it simultaneously?

https://blog.rust-lang.org/2023/09/25/Increasing-Apple-Version-Requirements/ and https://blog.rust-lang.org/2025/08/19/demoting-x86-64-apple-darwin-to-tier-2-with-host-tools/ are two related examples, but there are more if you want some inspiration.

Just a more user-friendly, short version of your MCP. Something motivating the change, mentioning the new behaviour, and saying that we will likely raise it further in the future, would be enough.

@CodesInChaos

Copy link
Copy Markdown

So this drops support for Pascal (10 series, P100), while keeping support for Volta (V100) and Turing (16 and 20 series)? Perhaps including that information in the docs would be helpful.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch from 9026a42 to e04ea32 Compare March 4, 2026 16:56
@rustbot

This comment has been minimized.

@kjetilkjeka kjetilkjeka force-pushed the nvptx_drop_support_old_hw_and_isa branch from e04ea32 to dc1bd5a Compare March 4, 2026 16:57
@kjetilkjeka

kjetilkjeka commented Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

With regards to blogpost, is something like this acceptable? rust-lang/blog.rust-lang.org#1810

So this drops support for Pascal (10 series, P100), while keeping support for Volta (V100) and Turing (16 and 20 series)? Perhaps including that information in the docs would be helpful.

Yes. I linked to the document by Nvidia listing all their GPUs as it will quickly become very verbose to explicitly list a lot of GPUs. Let me know if you think it's easier to get hold of this information with these changes.

Since the branch date for 1.95 was approaching I decided to instead wait for 1.96. The version is stated to be 1.96 in the docs and blogpost right now and we should have plenty of time for that branch date.

rust-bors Bot pushed a commit that referenced this pull request Apr 28, 2026
…, r=ZuseZ4

NVPTX: Drop support for old architectures and old ISAs



This is the implementation of [this MCP](rust-lang/compiler-team#965 (comment))

I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.
@rust-bors rust-bors Bot 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 Apr 28, 2026
@rust-bors

rust-bors Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

💔 Test for c7b0a6c failed: CI. Failed job:

@ZuseZ4

ZuseZ4 commented Apr 28, 2026

Copy link
Copy Markdown
Member

spurious. "No space left on device".

@bors r+

@rust-bors

rust-bors Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

📌 Commit a2d23ce has been approved by ZuseZ4

It is now in the queue for this repository.

A failed build status on this PR was cleared due to the approval.

@rust-bors rust-bors Bot 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 Apr 28, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Apr 28, 2026
…, r=ZuseZ4

NVPTX: Drop support for old architectures and old ISAs



This is the implementation of [this MCP](rust-lang/compiler-team#965 (comment))

I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job dist-loongarch64-musl failed! Check out the build log: (web) (plain enhanced) (plain)

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

@rust-bors rust-bors Bot 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 Apr 29, 2026
@rust-bors

rust-bors Bot commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

💔 Test for d04106d failed: CI. Failed job:

@jieyouxu

Copy link
Copy Markdown
Member

@bors retry (timeout)

@rust-bors rust-bors Bot 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 Apr 29, 2026
@jieyouxu

jieyouxu commented Apr 29, 2026

Copy link
Copy Markdown
Member

Let us know if loongarch job still fails with insufficient disk space in #t-infra > loongarch-musl job running out of disk space.

rust-bors Bot pushed a commit that referenced this pull request Apr 29, 2026
Rollup of 6 pull requests

Successful merges:

 - #152443 (NVPTX: Drop support for old architectures and old ISAs)
 - #155648 (`-Znext-solver` Propagate `stalled_on_coroutines` as a field in `Certainty::Maybe`)
 - #155896 (Shrink `ParseSess`)
 - #155922 (delete unused auxiliary test files)
 - #155943 (fix: ✏️ forgot to change the stable version for `assert_matches!` macro.)
 - #155947 (tests: mark simple UI tests as check-pass)
@rust-bors rust-bors Bot merged commit 5d26634 into rust-lang:main Apr 29, 2026
12 of 13 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 29, 2026
rust-timer added a commit that referenced this pull request Apr 29, 2026
Rollup merge of #152443 - kjetilkjeka:nvptx_drop_support_old_hw_and_isa, r=ZuseZ4

NVPTX: Drop support for old architectures and old ISAs

This is the implementation of [this MCP](rust-lang/compiler-team#965 (comment))

I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.
@ZuseZ4 ZuseZ4 added the relnotes Marks issues that should be documented in the release notes of the next release. label May 25, 2026
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jul 10, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | minor | `1.96.1` → `1.97.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.97.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1970-2026-07-09)

[Compare Source](rust-lang/rust@1.96.1...1.97.0)

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

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

## Language

- [Consider `Result<T, Uninhabited>` and `ControlFlow<Uninhabited, T>` to be equivalent to `T` for must use lint](rust-lang/rust#148214)
- [Add allow-by-default `dead_code_pub_in_binary` lint for unused pub items in binary crates](rust-lang/rust#149509)
- [Stabilize the `div32`, `lam-bh`, `lamcas`, `ld-seq-sa` and `scq` target features](rust-lang/rust#154510)
- [Stabilize `cfg(target_has_atomic_primitive_alignment)`](rust-lang/rust#155006)
- [Allow trailing `self` in imports in more cases](rust-lang/rust#155137)

<a id="1.97.0-Platform-Support"></a>

## Platform Support

- [nvptx64-nvidia-cuda: drop support for old architectures and old ISAs](rust-lang/rust#152443)

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.97.0-Stabilized-APIs"></a>

## Stabilized APIs

- [`Default for RepeatN`](https://doc.rust-lang.org/stable/std/iter/struct.RepeatN.html#impl-Default-for-RepeatN%3CA%3E)
- [`Copy for ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html#impl-Copy-for-FromBytesUntilNulError)
- [`Send for std::fs::File` on UEFI](rust-lang/rust#154003)
- [`<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_highest_one)
- [`<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_lowest_one)
- [`<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.highest_one)
- [`<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.lowest_one)
- [`<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.bit_width)
- [`NonZero<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_highest_one)
- [`NonZero<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_lowest_one)
- [`NonZero<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.highest_one)
- [`NonZero<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.lowest_one)
- [`NonZero<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.bit_width)

These previously stable APIs are now stable in const contexts:

- [`char::is_control`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_control)

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

## Cargo

- [Stabilize `build.warnings` config.](rust-lang/cargo#16796) This controls how lint warnings from local packages are treated. Useful for enforcing a warning-free build in CI, replacing `-Dwarnings`. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildwarnings)
- [Stabilize `resolver.lockfile-path` config.](rust-lang/cargo#16694) This allows specifying the path to the lockfile to use when resolving dependencies. Useful when working with read-only source directories. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#resolverlockfile-path)
- [cargo-clean: Error when `--target-dir` doesn't look like a Cargo target directory.](rust-lang/cargo#16712) This prevents accidental deletion of non-target directories.
- [Add `-m` shorthand for `--manifest-path`](rust-lang/cargo#16858)
- [Remove `curl` dependency from `crates-io` crate](rust-lang/cargo#16936)

<a id="1.97.0-Rustdoc"></a>

## Rustdoc

- [Stabilize `--emit` flag](rust-lang/rust#146220)
- [Stabilize `--remap-path-prefix`](rust-lang/rust#155307)

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

## Compatibility Notes

- [Emit a future-compatibility warning when relying on `f32: From<{float}>` to constrain `{float}`](rust-lang/rust#139087)
- [Rust will use the v0 symbol mangling scheme by default.](rust-lang/rust#151994) This may cause some tools (such as debuggers or profilers, especially with old versions) to fail to demangle symbols emitted by Rust. It may also cause the formatting of text in backtraces to change.
- [Prevent deref coercions in `pin!`, in order to prevent unsoundness.](rust-lang/rust#153457) The most likely case where this might impact users is: writing `pin!(x)` where `x` has type `&mut T` will now always correctly produce a value of type `Pin<&mut &mut T>`, instead of sometimes allowing a coercion that produces a value of type `Pin<&mut T>`. This coercion was previously incorrectly allowed since Rust 1.88.0.
- [Deprecate `std::char` constants and functions](rust-lang/rust#153873)
- [Warn on linker output by default](rust-lang/rust#153968)
- [Remove hidden `f64` methods which have been deprecated since 1.0](rust-lang/rust#153975)
- [report the `varargs_without_pattern` lint in deps](rust-lang/rust#154599)
- [Forbid passing generic arguments to module path segments even if the module reexports a generic enum variant](rust-lang/rust#154971)
- [Error on invalid macho `link_section` specifier](rust-lang/rust#155065)
- The encoding of certain `enum`s [have changed](rust-lang/rust#155473).  This is not a breaking change, as it only applies to `enum`s without layout guarantees, but is noted here as we've seen people impacted from having made assumptions about the layout algorithm.
- [Error on `#[export_name = "..."]` where the name is empty](rust-lang/rust#155515)
- [Syntactically reject tuple index shorthands in struct patterns](rust-lang/rust#155698)
- [validate `#[link_name = "..."]` & `#[link(name = "...")]` parameters](rust-lang/rust#155817)
- On Windows, after calling `shutdown` on a socket to shut down the write side, attempting to write to the socket will now produce a `BrokenPipe` error rather than `Other`. [Map `WSAESHUTDOWN` to `io::ErrorKind::BrokenPipe`](rust-lang/rust#156063)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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 [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTYuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6bWlub3IiXX0=-->
eleboucher pushed a commit to eleboucher/towonel that referenced this pull request Jul 10, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [rust](https://github.com/rust-lang/rust) |  | minor | `1.96.1` → `1.97.0` |
| rust | stage | minor | `1.96-bookworm` → `1.97-bookworm` |

---

### Release Notes

<details>
<summary>rust-lang/rust (rust)</summary>

### [`v1.97.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1970-2026-07-09)

[Compare Source](rust-lang/rust@1.96.1...1.97.0)

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

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

## Language

- [Consider `Result<T, Uninhabited>` and `ControlFlow<Uninhabited, T>` to be equivalent to `T` for must use lint](rust-lang/rust#148214)
- [Add allow-by-default `dead_code_pub_in_binary` lint for unused pub items in binary crates](rust-lang/rust#149509)
- [Stabilize the `div32`, `lam-bh`, `lamcas`, `ld-seq-sa` and `scq` target features](rust-lang/rust#154510)
- [Stabilize `cfg(target_has_atomic_primitive_alignment)`](rust-lang/rust#155006)
- [Allow trailing `self` in imports in more cases](rust-lang/rust#155137)

<a id="1.97.0-Platform-Support"></a>

## Platform Support

- [nvptx64-nvidia-cuda: drop support for old architectures and old ISAs](rust-lang/rust#152443)

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.97.0-Stabilized-APIs"></a>

## Stabilized APIs

- [`Default for RepeatN`](https://doc.rust-lang.org/stable/std/iter/struct.RepeatN.html#impl-Default-for-RepeatN%3CA%3E)
- [`Copy for ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html#impl-Copy-for-FromBytesUntilNulError)
- [`Send for std::fs::File` on UEFI](rust-lang/rust#154003)
- [`<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_highest_one)
- [`<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_lowest_one)
- [`<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.highest_one)
- [`<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.lowest_one)
- [`<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.bit_width)
- [`NonZero<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_highest_one)
- [`NonZero<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_lowest_one)
- [`NonZero<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.highest_one)
- [`NonZero<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.lowest_one)
- [`NonZero<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.bit_width)

These previously stable APIs are now stable in const contexts:

- [`char::is_control`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_control)

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

## Cargo

- [Stabilize `build.warnings` config.](rust-lang/cargo#16796) This controls how lint warnings from local packages are treated. Useful for enforcing a warning-free build in CI, replacing `-Dwarnings`. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildwarnings)
- [Stabilize `resolver.lockfile-path` config.](rust-lang/cargo#16694) This allows specifying the path to the lockfile to use when resolving dependencies. Useful when working with read-only source directories. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#resolverlockfile-path)
- [cargo-clean: Error when `--target-dir` doesn't look like a Cargo target directory.](rust-lang/cargo#16712) This prevents accidental deletion of non-target directories.
- [Add `-m` shorthand for `--manifest-path`](rust-lang/cargo#16858)
- [Remove `curl` dependency from `crates-io` crate](rust-lang/cargo#16936)

<a id="1.97.0-Rustdoc"></a>

## Rustdoc

- [Stabilize `--emit` flag](rust-lang/rust#146220)
- [Stabilize `--remap-path-prefix`](rust-lang/rust#155307)

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

## Compatibility Notes

- [Emit a future-compatibility warning when relying on `f32: From<{float}>` to constrain `{float}`](rust-lang/rust#139087)
- [Rust will use the v0 symbol mangling scheme by default.](rust-lang/rust#151994) This may cause some tools (such as debuggers or profilers, especially with old versions) to fail to demangle symbols emitted by Rust. It may also cause the formatting of text in backtraces to change.
- [Prevent deref coercions in `pin!`, in order to prevent unsoundness.](rust-lang/rust#153457) The most likely case where this might impact users is: writing `pin!(x)` where `x` has type `&mut T` will now always correctly produce a value of type `Pin<&mut &mut T>`, instead of sometimes allowing a coercion that produces a value of type `Pin<&mut T>`. This coercion was previously incorrectly allowed since Rust 1.88.0.
- [Deprecate `std::char` constants and functions](rust-lang/rust#153873)
- [Warn on linker output by default](rust-lang/rust#153968)
- [Remove hidden `f64` methods which have been deprecated since 1.0](rust-lang/rust#153975)
- [report the `varargs_without_pattern` lint in deps](rust-lang/rust#154599)
- [Forbid passing generic arguments to module path segments even if the module reexports a generic enum variant](rust-lang/rust#154971)
- [Error on invalid macho `link_section` specifier](rust-lang/rust#155065)
- The encoding of certain `enum`s [have changed](rust-lang/rust#155473).  This is not a breaking change, as it only applies to `enum`s without layout guarantees, but is noted here as we've seen people impacted from having made assumptions about the layout algorithm.
- [Error on `#[export_name = "..."]` where the name is empty](rust-lang/rust#155515)
- [Syntactically reject tuple index shorthands in struct patterns](rust-lang/rust#155698)
- [validate `#[link_name = "..."]` & `#[link(name = "...")]` parameters](rust-lang/rust#155817)
- On Windows, after calling `shutdown` on a socket to shut down the write side, attempting to write to the socket will now produce a `BrokenPipe` error rather than `Other`. [Map `WSAESHUTDOWN` to `io::ErrorKind::BrokenPipe`](rust-lang/rust#156063)

</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 PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://codeberg.org/towonel/towonel/pulls/58
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request Jul 11, 2026
Package updates relative to rust196:
 * Version & checksum changes
 * Applied patches to updated vendored crates

Upstream changes:

Version 1.97.0 (2026-07-09)
==========================

Language
--------
- [Consider `Result<T, Uninhabited>` and `ControlFlow<Uninhabited,
  T>` to be equivalent to `T` for must use lint]
  (rust-lang/rust#148214)
- [Add allow-by-default `dead_code_pub_in_binary` lint for unused
  pub items in binary crates] (rust-lang/rust#149509)
- [Stabilize the `div32`, `lam-bh`, `lamcas`, `ld-seq-sa` and `scq`
  target features] (rust-lang/rust#154510)
- [Stabilize `cfg(target_has_atomic_primitive_alignment)`]
  (rust-lang/rust#155006)
- [Allow trailing `self` in imports in more cases]
  (rust-lang/rust#155137)

Platform Support
----------------
- [nvptx64-nvidia-cuda: drop support for old architectures and old ISAs]
  (rust-lang/rust#152443)

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

Stabilized APIs
---------------

- [`Default for RepeatN`]
  (https://doc.rust-lang.org/stable/std/iter/struct.RepeatN.html#impl-Default-for-RepeatN%3CA%3E)
- [`Copy for ffi::FromBytesUntilNulError`]
  (https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html#impl-Copy-for-FromBytesUntilNulError)
- [`Send for std::fs::File` on UEFI]
  (rust-lang/rust#154003)
- [`<{integer}>::isolate_highest_one`]
  (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_highest_one)
- [`<{integer}>::isolate_lowest_one`]
  (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_lowest_one)
- [`NonZero<{integer}>::isolate_highest_one`]
  (https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_highest_one)
- [`NonZero<{integer}>::isolate_lowest_one`]
  (https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_lowest_one)
- [`<{integer}>::bit_width`]
  (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.bit_width)
- [`<{integer}>::lowest_one`]
  (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.lowest_one)
- [`<{integer}>::highest_one`]
  (https://doc.rust-lang.org/stable/std/primitive.u32.html#method.highest_one)
- [`NonZero<{integer}>::bit_width`]
  (https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.bit_width)
- [`NonZero<{integer}>::highest_one`]
  (https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.highest_one)
- [`NonZero<{integer}>::lowest_one`]
  (https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.lowest_one)

These previously stable APIs are now stable in const contexts:

- [`char::is_control`]
  (https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_control)

Cargo
-----
- [Stabilize `build.warnings` config.]
  (rust-lang/cargo#16796) This controls
  how lint warnings from local packages are treated. Useful for
  enforcing a warning-free build in CI, replacing `-Dwarnings`.
  [docs]
  (https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildwarnings)
- [Stabilize `resolver.lockfile-path` config.]
  (rust-lang/cargo#16694) This allows
  specifying the path to the lockfile to use when resolving
  dependencies. Useful when working with read-only source directories.  [docs]
  (https://doc.rust-lang.org/nightly/cargo/reference/config.html#resolverlockfile-path)
- [cargo-clean: Error when `--target-dir` doesn't look like a Cargo
  target directory.] (rust-lang/cargo#16712)
  This prevents accidental deletion of non-target directories.
- [Add `-m` shorthand for `--manifest-path`]
  (rust-lang/cargo#16858)
- [Remove `curl` dependency from `crates-io` crate]
  (rust-lang/cargo#16936)

Rustdoc
-----
- [Stabilize `--emit` flag]
  (rust-lang/rust#146220)
- [Stabilize `--remap-path-prefix`]
  (rust-lang/rust#155307)

Compatibility Notes
-------------------
- [Emit a future-compatibility warning when relying on `f32:
  From<{float}>` to constrain `{float}`]
  (rust-lang/rust#139087)
- [Rust will use the v0 symbol mangling scheme by default.]
  (rust-lang/rust#151994) This may cause
  some tools (such as debuggers or profilers, especially with old
  versions) to fail to demangle symbols emitted by Rust. It may
  also cause the formatting of text in backtraces to change.
- [Prevent deref coercions in `pin!`, in order to prevent unsoundness.]
  (rust-lang/rust#153457) The most likely
  case where this might impact users is: writing `pin!(x)` where
  `x` has type `&mut T` will now always correctly produce a value
  of type `Pin<&mut &mut T>`, instead of sometimes allowing a
  coercion that produces a value of type `Pin<&mut T>`. This coercion
  was previously incorrectly allowed since Rust 1.88.0.
- [Deprecate `std::char` constants and functions]
  (rust-lang/rust#153873)
- [Warn on linker output by default]
  (rust-lang/rust#153968)
- [Remove hidden `f64` methods which have been deprecated since 1.0]
  (rust-lang/rust#153975)
- [report the `varargs_without_pattern` lint in deps]
  (rust-lang/rust#154599)
- [Forbid passing generic arguments to module path segments even
  if the module reexports a generic enum variant]
  (rust-lang/rust#154971)
- [Error on invalid macho `link_section` specifier]
  (rust-lang/rust#155065)
- The encoding of certain `enum`s [have changed]
  (rust-lang/rust#155473).  This is not a
  breaking change, as it only applies to `enum`s without layout
  guarantees, but is noted here as we've seen people impacted from
  having made assumptions about the layout algorithm.
- [Error on `#[export_name = "..."]` where the name is empty]
  (rust-lang/rust#155515)
- [Syntactically reject tuple index shorthands in struct patterns]
  (rust-lang/rust#155698)
- [validate `#[link_name = "..."]` & `#[link(name = "...")]` parameters]
  (rust-lang/rust#155817)
- On Windows, after calling `shutdown` on a socket to shut down
  the write side, attempting to write to the socket will now produce
  a `BrokenPipe` error rather than `Other`. [Map `WSAESHUTDOWN` to
  `io::ErrorKind::BrokenPipe`]
  (rust-lang/rust#156063)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. O-NVPTX Target: the NVPTX LLVM backend for running rust on GPUs, https://llvm.org/docs/NVPTXUsage.html 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants