Skip to content

Commit 50b8779

Browse files
Cherry pick release notes
1 parent 58b55f5 commit 50b8779

File tree

1 file changed

+210
-0
lines changed

1 file changed

+210
-0
lines changed

RELEASES.md

+210
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,213 @@
1+
Version 1.77.0 (2024-03-21)
2+
==========================
3+
4+
<a id="1.77.0-Language"></a>
5+
6+
Language
7+
--------
8+
9+
- [Reveal opaque types within the defining body for exhaustiveness checking.](https://github.com/rust-lang/rust/pull/116821/)
10+
- [Stabilize C-string literals.](https://github.com/rust-lang/rust/pull/117472/)
11+
- [Stabilize THIR unsafeck.](https://github.com/rust-lang/rust/pull/117673/)
12+
- [Add lint `static_mut_refs` to warn on references to mutable statics.](https://github.com/rust-lang/rust/pull/117556/)
13+
- [Support async recursive calls (as long as they have indirection).](https://github.com/rust-lang/rust/pull/117703/)
14+
- [Undeprecate lint `unstable_features` and make use of it in the compiler.](https://github.com/rust-lang/rust/pull/118639/)
15+
- [Make inductive cycles in coherence ambiguous always.](https://github.com/rust-lang/rust/pull/118649/)
16+
- [Get rid of type-driven traversal in const-eval interning](https://github.com/rust-lang/rust/pull/119044/),
17+
only as a [future compatiblity lint](https://github.com/rust-lang/rust/pull/122204) for now.
18+
- [Deny braced macro invocations in let-else.](https://github.com/rust-lang/rust/pull/119062/)
19+
20+
<a id="1.77.0-Compiler"></a>
21+
22+
Compiler
23+
--------
24+
25+
- [Include lint `soft_unstable` in future breakage reports.](https://github.com/rust-lang/rust/pull/116274/)
26+
- [Make `i128` and `u128` 16-byte aligned on x86-based targets.](https://github.com/rust-lang/rust/pull/116672/)
27+
- [Use `--verbose` in diagnostic output.](https://github.com/rust-lang/rust/pull/119129/)
28+
- [Improve spacing between printed tokens.](https://github.com/rust-lang/rust/pull/120227/)
29+
- [Merge the `unused_tuple_struct_fields` lint into `dead_code`.](https://github.com/rust-lang/rust/pull/118297/)
30+
- [Error on incorrect implied bounds in well-formedness check](https://github.com/rust-lang/rust/pull/118553/),
31+
with a temporary exception for Bevy.
32+
- [Fix coverage instrumentation/reports for non-ASCII source code.](https://github.com/rust-lang/rust/pull/119033/)
33+
- [Fix `fn`/`const` items implied bounds and well-formedness check.](https://github.com/rust-lang/rust/pull/120019/)
34+
- [Promote `riscv32{im|imafc}-unknown-none-elf` targets to tier 2.](https://github.com/rust-lang/rust/pull/118704/)
35+
- Add several new tier 3 targets:
36+
- [`aarch64-unknown-illumos`](https://github.com/rust-lang/rust/pull/112936/)
37+
- [`hexagon-unknown-none-elf`](https://github.com/rust-lang/rust/pull/117601/)
38+
- [`riscv32imafc-esp-espidf`](https://github.com/rust-lang/rust/pull/119738/)
39+
- [`riscv32im-risc0-zkvm-elf`](https://github.com/rust-lang/rust/pull/117958/)
40+
41+
Refer to Rust's [platform support page][platform-support-doc]
42+
for more information on Rust's tiered platform support.
43+
44+
<a id="1.77.0-Libraries"></a>
45+
46+
Libraries
47+
---------
48+
49+
- [Implement `From<&[T; N]>` for `Cow<[T]>`.](https://github.com/rust-lang/rust/pull/113489/)
50+
- [Remove special-case handling of `vec.split_off(0)`.](https://github.com/rust-lang/rust/pull/119917/)
51+
52+
<a id="1.77.0-Stabilized-APIs"></a>
53+
54+
Stabilized APIs
55+
---------------
56+
57+
- [`array::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref)
58+
- [`array::each_mut`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut)
59+
- [`core::net`](https://doc.rust-lang.org/stable/core/net/index.html)
60+
- [`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even)
61+
- [`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even)
62+
- [`mem::offset_of!`](https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html)
63+
- [`slice::first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk)
64+
- [`slice::first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk_mut)
65+
- [`slice::split_first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk)
66+
- [`slice::split_first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk_mut)
67+
- [`slice::last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk)
68+
- [`slice::last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk_mut)
69+
- [`slice::split_last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk)
70+
- [`slice::split_last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk_mut)
71+
- [`slice::chunk_by`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by)
72+
- [`slice::chunk_by_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by_mut)
73+
- [`Bound::map`](https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.map)
74+
- [`File::create_new`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.create_new)
75+
- [`Mutex::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.clear_poison)
76+
- [`RwLock::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#method.clear_poison)
77+
78+
<a id="1.77.0-Cargo"></a>
79+
80+
Cargo
81+
-----
82+
83+
- [Extend the build directive syntax with `cargo::`.](https://github.com/rust-lang/cargo/pull/12201/)
84+
- [Stabilize metadata `id` format as `PackageIDSpec`.](https://github.com/rust-lang/cargo/pull/12914/)
85+
- [Pull out as `cargo-util-schemas` as a crate.](https://github.com/rust-lang/cargo/pull/13178/)
86+
- [Strip all debuginfo when debuginfo is not requested.](https://github.com/rust-lang/cargo/pull/13257/)
87+
- [Inherit jobserver from env for all kinds of runners.](https://github.com/rust-lang/cargo/pull/12776/)
88+
- [Deprecate rustc plugin support in cargo.](https://github.com/rust-lang/cargo/pull/13248/)
89+
90+
<a id="1.77.0-Rustdoc"></a>
91+
92+
Rustdoc
93+
-----
94+
95+
- [Allows links in markdown headings.](https://github.com/rust-lang/rust/pull/117662/)
96+
- [Search for tuples and unit by type with `()`.](https://github.com/rust-lang/rust/pull/118194/)
97+
- [Clean up the source sidebar's hide button.](https://github.com/rust-lang/rust/pull/119066/)
98+
- [Prevent JS injection from `localStorage`.](https://github.com/rust-lang/rust/pull/120250/)
99+
100+
<a id="1.77.0-Misc"></a>
101+
102+
Misc
103+
----
104+
105+
- [Recommend version-sorting for all sorting in style guide.](https://github.com/rust-lang/rust/pull/115046/)
106+
107+
<a id="1.77.0-Internal-Changes"></a>
108+
109+
Internal Changes
110+
----------------
111+
112+
These changes do not affect any public interfaces of Rust, but they represent
113+
significant improvements to the performance or internals of rustc and related
114+
tools.
115+
116+
- [Add more weirdness to `weird-exprs.rs`.](https://github.com/rust-lang/rust/pull/119028/)
117+
118+
Version 1.76.0 (2024-02-08)
119+
==========================
120+
121+
<a id="1.76.0-Language"></a>
122+
123+
Language
124+
--------
125+
- [Document Rust ABI compatibility between various types](https://github.com/rust-lang/rust/pull/115476/)
126+
- [Also: guarantee that char and u32 are ABI-compatible](https://github.com/rust-lang/rust/pull/118032/)
127+
- [Add lint `ambiguous_wide_pointer_comparisons` that supersedes `clippy::vtable_address_comparisons`](https://github.com/rust-lang/rust/pull/117758)
128+
129+
<a id="1.76.0-Compiler"></a>
130+
131+
Compiler
132+
--------
133+
- [Lint pinned `#[must_use]` pointers (in particular, `Box<T>` where `T` is `#[must_use]`) in `unused_must_use`.](https://github.com/rust-lang/rust/pull/118054/)
134+
- [Soundness fix: fix computing the offset of an unsized field in a packed struct](https://github.com/rust-lang/rust/pull/118540/)
135+
- [Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail](https://github.com/rust-lang/rust/pull/118538/)
136+
- [Add `$message_type` field to distinguish json diagnostic outputs](https://github.com/rust-lang/rust/pull/115691/)
137+
- [Enable Rust to use the EHCont security feature of Windows](https://github.com/rust-lang/rust/pull/118013/)
138+
- [Add tier 3 {x86_64,i686}-win7-windows-msvc targets](https://github.com/rust-lang/rust/pull/118150/)
139+
- [Add tier 3 aarch64-apple-watchos target](https://github.com/rust-lang/rust/pull/119074/)
140+
- [Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets](https://github.com/rust-lang/rust/pull/115526/)
141+
142+
Refer to Rust's [platform support page][platform-support-doc]
143+
for more information on Rust's tiered platform support.
144+
145+
<a id="1.76.0-Libraries"></a>
146+
147+
Libraries
148+
---------
149+
- [Add a column number to `dbg!()`](https://github.com/rust-lang/rust/pull/114962/)
150+
- [Add `std::hash::{DefaultHasher, RandomState}` exports](https://github.com/rust-lang/rust/pull/115694/)
151+
- [Fix rounding issue with exponents in fmt](https://github.com/rust-lang/rust/pull/116301/)
152+
- [Add T: ?Sized to `RwLockReadGuard` and `RwLockWriteGuard`'s Debug impls.](https://github.com/rust-lang/rust/pull/117138/)
153+
- [Windows: Allow `File::create` to work on hidden files](https://github.com/rust-lang/rust/pull/116438/)
154+
155+
<a id="1.76.0-Stabilized-APIs"></a>
156+
157+
Stabilized APIs
158+
---------------
159+
160+
- [`Arc::unwrap_or_clone`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.unwrap_or_clone)
161+
- [`Rc::unwrap_or_clone`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.unwrap_or_clone)
162+
- [`Result::inspect`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect)
163+
- [`Result::inspect_err`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect_err)
164+
- [`Option::inspect`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.inspect)
165+
- [`type_name_of_val`](https://doc.rust-lang.org/stable/std/any/fn.type_name_of_val.html)
166+
- [`std::hash::{DefaultHasher, RandomState}`](https://doc.rust-lang.org/stable/std/hash/index.html#structs)
167+
These were previously available only through `std::collections::hash_map`.
168+
- [`ptr::{from_ref, from_mut}`](https://doc.rust-lang.org/stable/std/ptr/fn.from_ref.html)
169+
- [`ptr::addr_eq`](https://doc.rust-lang.org/stable/std/ptr/fn.addr_eq.html)
170+
171+
<a id="1.76.0-Cargo"></a>
172+
173+
Cargo
174+
-----
175+
176+
See [Cargo release notes](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-176-2024-02-08).
177+
178+
<a id="1.76.0-Rustdoc"></a>
179+
180+
Rustdoc
181+
-------
182+
183+
- [Don't merge cfg and doc(cfg) attributes for re-exports](https://github.com/rust-lang/rust/pull/113091/)
184+
- [rustdoc: allow resizing the sidebar / hiding the top bar](https://github.com/rust-lang/rust/pull/115660/)
185+
- [rustdoc-search: add support for traits and associated types](https://github.com/rust-lang/rust/pull/116085/)
186+
- [rustdoc: Add highlighting for comments in items declaration](https://github.com/rust-lang/rust/pull/117869/)
187+
188+
<a id="1.76.0-Compatibility-Notes"></a>
189+
190+
Compatibility Notes
191+
-------------------
192+
- [Add allow-by-default lint for unit bindings](https://github.com/rust-lang/rust/pull/112380/)
193+
This is expected to be upgraded to a warning by default in a future Rust
194+
release. Some macros emit bindings with type `()` with user-provided spans,
195+
which means that this lint will warn for user code.
196+
- [Remove x86_64-sun-solaris target.](https://github.com/rust-lang/rust/pull/118091/)
197+
- [Remove asmjs-unknown-emscripten target](https://github.com/rust-lang/rust/pull/117338/)
198+
- [Report errors in jobserver inherited through environment variables](https://github.com/rust-lang/rust/pull/113730/)
199+
This [may warn](https://github.com/rust-lang/rust/issues/120515) on benign problems too.
200+
- [Update the minimum external LLVM to 16.](https://github.com/rust-lang/rust/pull/117947/)
201+
- [Improve `print_tts`](https://github.com/rust-lang/rust/pull/114571/)
202+
This change can break some naive manual parsing of token trees in proc macro
203+
code which expect a particular structure after `.to_string()`, rather than just arbitrary Rust code.
204+
- [Make `IMPLIED_BOUNDS_ENTAILMENT` into a hard error from a lint](https://github.com/rust-lang/rust/pull/117984/)
205+
- [Vec's allocation behavior was changed when collecting some iterators](https://github.com/rust-lang/rust/pull/110353)
206+
Allocation behavior is currently not specified, nevertheless changes can be surprising.
207+
See [`impl FromIterator for Vec`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#impl-FromIterator%3CT%3E-for-Vec%3CT%3E)
208+
for more details.
209+
- [Properly reject `default` on free const items](https://github.com/rust-lang/rust/pull/117818/)
210+
1211
Version 1.75.0 (2023-12-28)
2212
==========================
3213

0 commit comments

Comments
 (0)