Skip to content

Commit cd8e586

Browse files
Further revisions
1 parent 990328a commit cd8e586

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

RELEASES.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ Language
99
- [Lower pattern bindings in the order they're written and base drop order on primary bindings' order](https://github.com/rust-lang/rust/pull/143764)
1010
- [Stabilize declaration of C-style variadic functions for `sysv64`, `win64`, `efiapi`, and `aapcs` ABIs](https://github.com/rust-lang/rust/pull/144066).
1111
This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined.
12-
- [Always require coroutine captures to be drop-live](https://github.com/rust-lang/rust/pull/144156)
1312
- [Add `dangling_pointers_from_locals` lint to warn against dangling pointers from local variables](https://github.com/rust-lang/rust/pull/144322)
1413
- [Upgrade `semicolon_in_expressions_from_macros` from warn to deny](https://github.com/rust-lang/rust/pull/144369)
1514
- [Stabilize LoongArch32 inline assembly](https://github.com/rust-lang/rust/pull/144402)
@@ -22,7 +21,6 @@ Language
2221
Compiler
2322
--------
2423

25-
- [Error on invalid `#[link]` attributes](https://github.com/rust-lang/rust/pull/143193)
2624
- [Don't warn on never-to-any `as` casts as unreachable](https://github.com/rust-lang/rust/pull/144804)
2725

2826
<a id="1.91.0-Platform-Support"></a>
@@ -43,10 +41,10 @@ for more information on Rust's tiered platform support.
4341

4442
Libraries
4543
---------
44+
4645
- [Print thread ID in panic message](https://github.com/rust-lang/rust/pull/115746)
4746
- [Fix overly restrictive lifetime in `core::panic::Location::file` return type](https://github.com/rust-lang/rust/pull/132087)
4847
- [Guarantee parameter order for `_by()` variants of `min` / `max`/ `minmax` in `std::cmp`](https://github.com/rust-lang/rust/pull/139357)
49-
- [Implement Sum and Product for `Saturating<u*>`](https://github.com/rust-lang/rust/pull/144275)
5048
- [Document assumptions about `Clone` and `Eq` traits](https://github.com/rust-lang/rust/pull/144330/)
5149

5250
<a id="1.91.0-Stabilized-APIs"></a>
@@ -110,6 +108,10 @@ Stabilized APIs
110108
- [`impl Debug for windows::ffi::EncodeWide<'_>`](https://doc.rust-lang.org/stable/std/os/windows/ffi/struct.EncodeWide.html#impl-Debug-for-EncodeWide%3C'_%3E)
111109
- [`str::ceil_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.ceil_char_boundary)
112110
- [`str::floor_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.floor_char_boundary)
111+
- [`impl Sum for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum-for-Saturating%3Cu32%3E)
112+
- [`impl Sum<&u{N}> for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Sum%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E)
113+
- [`impl Product for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product-for-Saturating%3Cu32%3E)
114+
- [`impl Product<&u{N}> for Saturating<u{N}>`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html#impl-Product%3C%26Saturating%3Cu32%3E%3E-for-Saturating%3Cu32%3E)
113115

114116
These previously stable APIs are now stable in const contexts:
115117

@@ -135,15 +137,12 @@ Cargo
135137
([build cache doc](https://doc.rust-lang.org/nightly/cargo/reference/build-cache.html))
136138
[#15833](https://github.com/rust-lang/cargo/pull/15833)
137139
[#15840](https://github.com/rust-lang/cargo/pull/15840)
138-
- 🎉 Stabilize `build.build-dir`.
139-
This config sets the directory where intermediate build artifacts are stored.
140-
These artifacts are produced by Cargo and rustc during the build process.
141-
End users usually won't need to interact with them, and the layout inside
142-
`build-dir` is an implementation detail that may change without notice.
143-
([config doc](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildbuild-dir))
144-
([build cache doc](https://doc.rust-lang.org/nightly/cargo/reference/build-cache.html))
145-
[#15833](https://github.com/rust-lang/cargo/pull/15833)
146-
[#15840](https://github.com/rust-lang/cargo/pull/15840)
140+
- The `--target` flag and the `build.target` configuration can now take literal
141+
`"host-tuple"` string, which will internally be substituted by the host
142+
machine's target triple.
143+
[#15838](https://github.com/rust-lang/cargo/pull/15838)
144+
[#16003](https://github.com/rust-lang/cargo/pull/16003)
145+
[#16032](https://github.com/rust-lang/cargo/pull/16032)
147146

148147
<a id="1.91.0-Rustdoc"></a>
149148

@@ -156,16 +155,18 @@ Rustdoc
156155

157156
Compatibility Notes
158157
-------------------
158+
- [Always require coroutine captures to be drop-live](https://github.com/rust-lang/rust/pull/144156)
159159
- [Apple: Always pass SDK root when linking with `cc`, and pass it via `SDKROOT` env var](https://github.com/rust-lang/rust/pull/131477). This should fix linking issues with `rustc` running inside Xcode. Libraries in `/usr/local/lib` may no longer be linked automatically, if you develop or use a crate that relies on this, you should explicitly set `cargo::rustc-link-search=/usr/local/lib` in a `build.rs` script.
160160
- [Relaxed bounds in associated type bound position like in `TraitRef<AssocTy: ?Sized>` are now correctly forbidden](https://github.com/rust-lang/rust/pull/135331)
161161
- [Add unstable `#[sanitize(xyz = "on|off")]` built-in attribute that shadows procedural macros with the same name](https://github.com/rust-lang/rust/pull/142681)
162162
- [Fix the drop checker being more permissive for bindings declared with let-else](https://github.com/rust-lang/rust/pull/143028)
163-
- [Error on invalid `#[should_panic]` attributes](https://github.com/rust-lang/rust/pull/143808)
163+
- [Be more strict when parsing attributes, erroring on many invalid attributes](https://github.com/rust-lang/rust/pull/144689)
164+
- [Error on invalid `#[should_panic]` attributes](https://github.com/rust-lang/rust/pull/143808)
165+
- [Error on invalid `#[link]` attributes](https://github.com/rust-lang/rust/pull/143193)
164166
- [Mark all deprecation lints in name resolution as deny-by-default and also report in dependencies](https://github.com/rust-lang/rust/pull/143929)
165167
- The lint `semicolon_in_expressions_from_macros`, for `macro_rules!` macros in expression position that expand to end in a semicolon (`;`), is now deny-by-default. It was already warn-by-default, and a future compatibility warning (FCW) that warned even in dependencies. This lint will become a hard error in the future.
166168
- [Trait impl modifiers (e.g., `unsafe`, `!`, `default`) in inherent impls are no longer syntactically valid](https://github.com/rust-lang/rust/pull/144386)
167169
- [Start reporting future breakage for `ILL_FORMED_ATTRIBUTE_INPUT` in dependencies](https://github.com/rust-lang/rust/pull/144544)
168-
- [Be more strict when parsing attributes, erroring on many invalid attributes](https://github.com/rust-lang/rust/pull/144689)
169170
- [Restrict the scope of temporaries created by the macros `pin!`, `format_args!`, `write!`, and `writeln!` in `if let` scrutinees in Rust Edition 2024.](https://github.com/rust-lang/rust/pull/145342) This applies [Rust Edition 2024's `if let` temporary scope rules](https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html) to these temporaries, which previously could live past the `if` expression regardless of Edition.
170171
- [Invalid numeric literal suffixes in tuple indexing, tuple struct indexing, and struct field name positions are now correctly rejected](https://github.com/rust-lang/rust/pull/145463)
171172
- [Closures marked with the keyword `static` are now syntactically invalid](https://github.com/rust-lang/rust/pull/145604)
@@ -178,12 +179,20 @@ Cargo compatibility notes:
178179
when `build.build-dir` is set. These tarballs were previously included due to
179180
an oversight and are now treated as intermediate artifacts.
180181
To get `.crate` tarballs as final artifacts, use `cargo package`.
181-
In the next version, this change will apply regardless of `build.build-dir`.
182+
In a future version, this change will apply regardless of `build.build-dir`.
182183
[#15910](https://github.com/rust-lang/cargo/pull/15910)
183184
- Adjust Cargo messages to match rustc diagnostic style.
184185
This changes some of the terminal colors used by Cargo messages.
185186
[#15928](https://github.com/rust-lang/cargo/pull/15928)
186-
187+
- Tools and projects relying on the
188+
[internal details of Cargo's `build-dir`](https://doc.rust-lang.org/cargo/reference/build-cache.html)
189+
may not work for users changing their `build-dir` layout.
190+
For those doing so, we'd recommend proactively testing these cases
191+
particularly as we are considering changing the default location of the `build-dir` in the future
192+
([cargo#16147](https://github.com/rust-lang/cargo/issues/16147)).
193+
If you can't migrate off of Cargo's internal details,
194+
we'd like to learn more about your use case as we prepare to change the layout of the `build-dir`
195+
([cargo#15010](https://github.com/rust-lang/cargo/issues/15010)).
187196

188197
<a id="1.91.0-Internal-Changes"></a>
189198

@@ -476,7 +485,7 @@ Language
476485
This allows using boolean literals as `cfg` predicates, e.g. `#[cfg(true)]` and `#[cfg(false)]`.
477486
- [Fully de-stabilize the `#[bench]` attribute](https://github.com/rust-lang/rust/pull/134273). Usage of `#[bench]` without `#![feature(custom_test_frameworks)]` already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
478487
- [Add warn-by-default `dangerous_implicit_autorefs` lint against implicit autoref of raw pointer dereference.](https://github.com/rust-lang/rust/pull/123239)
479-
The lint [will be bumped to deny-by-default](https://github.com/rust-lang/rust/pull/141661) in the next version of Rust.
488+
The lint [will be bumped to deny-by-default](https://github.com/rust-lang/rust/pull/141661) in a future version of Rust.
480489
- [Add `invalid_null_arguments` lint to prevent invalid usage of null pointers.](https://github.com/rust-lang/rust/pull/119220)
481490
This lint is uplifted from `clippy::invalid_null_ptr_usage`.
482491
- [Change trait impl candidate preference for builtin impls and trivial where-clauses.](https://github.com/rust-lang/rust/pull/138176)

0 commit comments

Comments
 (0)