Skip to content

Commit 69eb089

Browse files
committed
Auto merge of #158871 - BoxyUwU:relnotes_1_97_0, r=mark-simulacrum
add relnotes for 1.97.0 cc @rust-lang/release @rustbot ping relnotes-interest-group r? mark-simulacrum
2 parents 71c6416 + 9fa33b1 commit 69eb089

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

RELEASES.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,93 @@
1+
Version 1.97.0 (2026-07-09)
2+
==========================
3+
4+
<a id="1.97.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Consider `Result<T, Uninhabited>` and `ControlFlow<Uninhabited, T>` to be equivalent to `T` for must use lint](https://github.com/rust-lang/rust/pull/148214)
9+
- [Add allow-by-default `dead_code_pub_in_binary` lint for unused pub items in binary crates](https://github.com/rust-lang/rust/pull/149509)
10+
- [Stabilize the `div32`, `lam-bh`, `lamcas`, `ld-seq-sa` and `scq` target features](https://github.com/rust-lang/rust/pull/154510)
11+
- [Stabilize `cfg(target_has_atomic_primitive_alignment)`](https://github.com/rust-lang/rust/pull/155006)
12+
- [Allow trailing `self` in imports in more cases](https://github.com/rust-lang/rust/pull/155137)
13+
14+
15+
<a id="1.97.0-Platform-Support"></a>
16+
17+
Platform Support
18+
----------------
19+
- [nvptx64-nvidia-cuda: drop support for old architectures and old ISAs](https://github.com/rust-lang/rust/pull/152443)
20+
21+
22+
Refer to Rust's [platform support page][platform-support-doc]
23+
for more information on Rust's tiered platform support.
24+
25+
[platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html
26+
27+
28+
<a id="1.97.0-Stabilized-APIs"></a>
29+
30+
Stabilized APIs
31+
---------------
32+
33+
- [`Default for RepeatN`](https://doc.rust-lang.org/stable/std/iter/struct.RepeatN.html#impl-Default-for-RepeatN%3CA%3E)
34+
- [`Copy for ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html#impl-Copy-for-FromBytesUntilNulError)
35+
- [`Send for std::fs::File` on UEFI](https://github.com/rust-lang/rust/pull/154003)
36+
- [`<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_highest_one)
37+
- [`<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_lowest_one)
38+
- [`<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.highest_one)
39+
- [`<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.lowest_one)
40+
- [`<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.bit_width)
41+
- [`NonZero<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_highest_one)
42+
- [`NonZero<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_lowest_one)
43+
- [`NonZero<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.highest_one)
44+
- [`NonZero<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.lowest_one)
45+
- [`NonZero<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.bit_width)
46+
47+
48+
These previously stable APIs are now stable in const contexts:
49+
50+
- [`char::is_control`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_control)
51+
52+
53+
<a id="1.97.0-Cargo"></a>
54+
55+
Cargo
56+
-----
57+
- [Stabilize `build.warnings` config.](https://github.com/rust-lang/cargo/pull/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)
58+
- [Stabilize `resolver.lockfile-path` config.](https://github.com/rust-lang/cargo/pull/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)
59+
- [cargo-clean: Error when `--target-dir` doesn't look like a Cargo target directory.](https://github.com/rust-lang/cargo/pull/16712) This prevents accidental deletion of non-target directories.
60+
- [Add `-m` shorthand for `--manifest-path`](https://github.com/rust-lang/cargo/pull/16858)
61+
- [Remove `curl` dependency from `crates-io` crate](https://github.com/rust-lang/cargo/pull/16936)
62+
63+
<a id="1.97.0-Rustdoc"></a>
64+
65+
Rustdoc
66+
-----
67+
- [Stabilize `--emit` flag](https://github.com/rust-lang/rust/pull/146220)
68+
- [Stabilize `--remap-path-prefix`](https://github.com/rust-lang/rust/pull/155307)
69+
70+
71+
<a id="1.97.0-Compatibility-Notes"></a>
72+
73+
Compatibility Notes
74+
-------------------
75+
- [Emit a future-compatibility warning when relying on `f32: From<{float}>` to constrain `{float}`](https://github.com/rust-lang/rust/pull/139087)
76+
- [Rust will use the v0 symbol mangling scheme by default.](https://github.com/rust-lang/rust/pull/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.
77+
- [Prevent deref coercions in `pin!`, in order to prevent unsoundness.](https://github.com/rust-lang/rust/pull/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.
78+
- [Deprecate `std::char` constants and functions](https://github.com/rust-lang/rust/pull/153873)
79+
- [Warn on linker output by default](https://github.com/rust-lang/rust/pull/153968)
80+
- [Remove hidden `f64` methods which have been deprecated since 1.0](https://github.com/rust-lang/rust/pull/153975)
81+
- [report the `varargs_without_pattern` lint in deps](https://github.com/rust-lang/rust/pull/154599)
82+
- [Forbid passing generic arguments to module path segments even if the module reexports a generic enum variant](https://github.com/rust-lang/rust/pull/154971)
83+
- [Error on invalid macho `link_section` specifier](https://github.com/rust-lang/rust/pull/155065)
84+
- The encoding of certain `enum`s [have changed](https://github.com/rust-lang/rust/pull/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.
85+
- [Error on `#[export_name = "..."]` where the name is empty](https://github.com/rust-lang/rust/pull/155515)
86+
- [Syntactically reject tuple index shorthands in struct patterns](https://github.com/rust-lang/rust/pull/155698)
87+
- [validate `#[link_name = "..."]` & `#[link(name = "...")]` parameters](https://github.com/rust-lang/rust/pull/155817)
88+
- 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`](https://github.com/rust-lang/rust/pull/156063)
89+
90+
191
Version 1.96.1 (2026-06-30)
292
===========================
393

0 commit comments

Comments
 (0)