Skip to content

Commit 6b0e8d0

Browse files
1.78 release notes
1 parent 825e831 commit 6b0e8d0

File tree

1 file changed

+119
-0
lines changed

1 file changed

+119
-0
lines changed

RELEASES.md

+119
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,122 @@
1+
Version 1.78.0 (2024-05-02)
2+
==========================
3+
4+
<a id="1.78.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Stabilize `#[cfg(target_abi = ...)]`](https://github.com/rust-lang/rust/pull/119590/)
9+
- [Stabilize the `#[diagnostic]` namespace and `#[diagnostic::on_unimplemented]` attribute](https://github.com/rust-lang/rust/pull/119888/)
10+
- [Make async-fn-in-trait implementable with concrete signatures](https://github.com/rust-lang/rust/pull/120103/)
11+
- [Make matching on NaN a hard error, and remove the rest of `illegal_floating_point_literal_pattern`](https://github.com/rust-lang/rust/pull/116284/)
12+
- [static mut: allow mutable reference to arbitrary types, not just slices and arrays](https://github.com/rust-lang/rust/pull/117614/)
13+
- [Extend `invalid_reference_casting` to include references casting to bigger memory layout](https://github.com/rust-lang/rust/pull/118983/)
14+
- [Add `non_contiguous_range_endpoints` lint for singleton gaps after exclusive ranges](https://github.com/rust-lang/rust/pull/118879/)
15+
- [Add `wasm_c_abi` lint for use of older wasm-bindgen versions](https://github.com/rust-lang/rust/pull/117918/)
16+
This lint currently only works when using Cargo.
17+
- [Update `indirect_structural_match` and `pointer_structural_match` lints to match RFC](https://github.com/rust-lang/rust/pull/120423/)
18+
- [Make non-`PartialEq`-typed consts as patterns a hard error](https://github.com/rust-lang/rust/pull/120805/)
19+
- [Split `refining_impl_trait` lint into `_reachable`, `_internal` variants](https://github.com/rust-lang/rust/pull/121720/)
20+
- [Remove unnecessary type inference when using associated types inside of higher ranked `where`-bounds](https://github.com/rust-lang/rust/pull/119849)
21+
- [Weaken eager detection of cyclic types during type inference](https://github.com/rust-lang/rust/pull/119989)
22+
23+
<a id="1.78.0-Compiler"></a>
24+
25+
Compiler
26+
--------
27+
28+
- [Made `INVALID_DOC_ATTRIBUTES` lint deny by default](https://github.com/rust-lang/rust/pull/111505/)
29+
- [Increase accuracy of redundant `use` checking](https://github.com/rust-lang/rust/pull/117772/)
30+
- [Suggest moving definition if non-found macro_rules! is defined later](https://github.com/rust-lang/rust/pull/121130/)
31+
- [Lower transmutes from int to pointer type as gep on null](https://github.com/rust-lang/rust/pull/121282/)
32+
33+
Target changes:
34+
35+
- [Windows tier 1 targets now require at least Windows 10](https://github.com/rust-lang/rust/pull/115141/)
36+
- [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1 Windows](https://github.com/rust-lang/rust/pull/120820/)
37+
- [Add `wasm32-wasip1` tier 2 (without host tools) target](https://github.com/rust-lang/rust/pull/120468/)
38+
- [Add `wasm32-wasip2` tier 3 target](https://github.com/rust-lang/rust/pull/119616/)
39+
- [Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads`](https://github.com/rust-lang/rust/pull/122170/)
40+
- [Add `arm64ec-pc-windows-msvc` tier 3 target](https://github.com/rust-lang/rust/pull/119199/)
41+
- [Add `armv8r-none-eabihf` tier 3 target for the Cortex-R52](https://github.com/rust-lang/rust/pull/110482/)
42+
- [Add `loongarch64-unknown-linux-musl` tier 3 target](https://github.com/rust-lang/rust/pull/121832/)
43+
44+
Refer to Rust's [platform support page][platform-support-doc]
45+
for more information on Rust's tiered platform support.
46+
47+
<a id="1.78.0-Libraries"></a>
48+
49+
Libraries
50+
---------
51+
52+
- [Bump Unicode to version 15.1.0, regenerate tables](https://github.com/rust-lang/rust/pull/120777/)
53+
- [Make align_offset, align_to well-behaved in all cases](https://github.com/rust-lang/rust/pull/121201/)
54+
- [PartialEq, PartialOrd: document expectations for transitive chains](https://github.com/rust-lang/rust/pull/115386/)
55+
- [Optimize away poison guards when std is built with panic=abort](https://github.com/rust-lang/rust/pull/100603/)
56+
- [Replace pthread `RwLock` with custom implementation](https://github.com/rust-lang/rust/pull/110211/)
57+
- [Implement unwind safety for Condvar on all platforms](https://github.com/rust-lang/rust/pull/121768/)
58+
- [Add ASCII fast-path for `char::is_grapheme_extended`](https://github.com/rust-lang/rust/pull/121138/)
59+
60+
<a id="1.78.0-Stabilized-APIs"></a>
61+
62+
Stabilized APIs
63+
---------------
64+
65+
- [`impl Read for &Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
66+
- [Accept non `'static` lifetimes for several `std::error::Error` related implementations](https://github.com/rust-lang/rust/pull/113833/)
67+
- [Make `impl<Fd: AsFd>` impl take `?Sized`](https://github.com/rust-lang/rust/pull/114655/)
68+
- [`impl From<TryReserveError> for io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)
69+
70+
These APIs are now stable in const contexts:
71+
72+
- [`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)
73+
74+
<a id="1.78.0-Cargo"></a>
75+
76+
Cargo
77+
-----
78+
79+
- [Stabilize lockfile v4](https://github.com/rust-lang/cargo/pull/12852/)
80+
- [Respect `rust-version` when generating lockfile](https://github.com/rust-lang/cargo/pull/12861/)
81+
- [Control `--charset` via auto-detecting config value](https://github.com/rust-lang/cargo/pull/13337/)
82+
- [Support `target.<triple>.rustdocflags` officially](https://github.com/rust-lang/cargo/pull/13197/)
83+
- [Stabilize global cache data tracking](https://github.com/rust-lang/cargo/pull/13492/)
84+
85+
<a id="1.78.0-Misc"></a>
86+
87+
Misc
88+
----
89+
90+
- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as RUSTC_WRAPPER when building doctests](https://github.com/rust-lang/rust/pull/114651/)
91+
92+
<a id="1.78.0-Compatibility-Notes"></a>
93+
94+
Compatibility Notes
95+
-------------------
96+
97+
- [Many unsafe precondition checks now run for user code with debug assertions enabled](https://github.com/rust-lang/rust/pull/120594/)
98+
This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable.
99+
- [riscv only supports split_debuginfo=off for now](https://github.com/rust-lang/rust/pull/120518/)
100+
- [Consistently check bounds on hidden types of `impl Trait`](https://github.com/rust-lang/rust/pull/121679)
101+
- [Change equality of higher ranked types to not rely on subtyping](https://github.com/rust-lang/rust/pull/118247)
102+
- [When called, additionally check bounds on normalized function return type](https://github.com/rust-lang/rust/pull/118882)
103+
- [Expand coverage for `arithmetic_overflow` lint](https://github.com/rust-lang/rust/pull/119432/)
104+
105+
<a id="1.78.0-Internal-Changes"></a>
106+
107+
Internal Changes
108+
----------------
109+
110+
These changes do not affect any public interfaces of Rust, but they represent
111+
significant improvements to the performance or internals of rustc and related
112+
tools.
113+
114+
- [Update to LLVM 18](https://github.com/rust-lang/rust/pull/120055/)
115+
- [Build `rustc` with 1CGU on `x86_64-pc-windows-msvc`](https://github.com/rust-lang/rust/pull/112267/)
116+
- [Build `rustc` with 1CGU on `x86_64-apple-darwin`](https://github.com/rust-lang/rust/pull/112268/)
117+
- [Introduce `run-make` V2 infrastructure, a `run_make_support` library and port over 2 tests as example](https://github.com/rust-lang/rust/pull/113026/)
118+
- [Windows: Implement condvar, mutex and rwlock using futex](https://github.com/rust-lang/rust/pull/121956/)
119+
1120
Version 1.77.2 (2024-04-09)
2121
===========================
3122

0 commit comments

Comments
 (0)