Skip to content

Commit 15adfb9

Browse files
committed
Auto merge of #124477 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum
[stable] 1.78.0 release https://forge.rust-lang.org/release/process.html#promote-branches-t-3-days-monday This also includes a backport of: * Use raw-dylib for Windows synchronization functions #124019 r? `@Mark-Simulacrum`
2 parents b7e3de2 + 21dcfbd commit 15adfb9

File tree

4 files changed

+172
-3
lines changed

4 files changed

+172
-3
lines changed

RELEASES.md

+121-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,123 @@
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+
- [`trait Trait: Auto {}`: allow upcasting from `dyn Trait` to `dyn Auto`](https://github.com/rust-lang/rust/pull/119338)
23+
24+
<a id="1.78.0-Compiler"></a>
25+
26+
Compiler
27+
--------
28+
29+
- [Made `INVALID_DOC_ATTRIBUTES` lint deny by default](https://github.com/rust-lang/rust/pull/111505/)
30+
- [Increase accuracy of redundant `use` checking](https://github.com/rust-lang/rust/pull/117772/)
31+
- [Suggest moving definition if non-found macro_rules! is defined later](https://github.com/rust-lang/rust/pull/121130/)
32+
- [Lower transmutes from int to pointer type as gep on null](https://github.com/rust-lang/rust/pull/121282/)
33+
34+
Target changes:
35+
36+
- [Windows tier 1 targets now require at least Windows 10](https://github.com/rust-lang/rust/pull/115141/)
37+
- [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1 Windows](https://github.com/rust-lang/rust/pull/120820/)
38+
- [Add `wasm32-wasip1` tier 2 (without host tools) target](https://github.com/rust-lang/rust/pull/120468/)
39+
- [Add `wasm32-wasip2` tier 3 target](https://github.com/rust-lang/rust/pull/119616/)
40+
- [Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads`](https://github.com/rust-lang/rust/pull/122170/)
41+
- [Add `arm64ec-pc-windows-msvc` tier 3 target](https://github.com/rust-lang/rust/pull/119199/)
42+
- [Add `armv8r-none-eabihf` tier 3 target for the Cortex-R52](https://github.com/rust-lang/rust/pull/110482/)
43+
- [Add `loongarch64-unknown-linux-musl` tier 3 target](https://github.com/rust-lang/rust/pull/121832/)
44+
45+
Refer to Rust's [platform support page][platform-support-doc]
46+
for more information on Rust's tiered platform support.
47+
48+
<a id="1.78.0-Libraries"></a>
49+
50+
Libraries
51+
---------
52+
53+
- [Bump Unicode to version 15.1.0, regenerate tables](https://github.com/rust-lang/rust/pull/120777/)
54+
- [Make align_offset, align_to well-behaved in all cases](https://github.com/rust-lang/rust/pull/121201/)
55+
- [PartialEq, PartialOrd: document expectations for transitive chains](https://github.com/rust-lang/rust/pull/115386/)
56+
- [Optimize away poison guards when std is built with panic=abort](https://github.com/rust-lang/rust/pull/100603/)
57+
- [Replace pthread `RwLock` with custom implementation](https://github.com/rust-lang/rust/pull/110211/)
58+
- [Implement unwind safety for Condvar on all platforms](https://github.com/rust-lang/rust/pull/121768/)
59+
- [Add ASCII fast-path for `char::is_grapheme_extended`](https://github.com/rust-lang/rust/pull/121138/)
60+
61+
<a id="1.78.0-Stabilized-APIs"></a>
62+
63+
Stabilized APIs
64+
---------------
65+
66+
- [`impl Read for &Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
67+
- [Accept non `'static` lifetimes for several `std::error::Error` related implementations](https://github.com/rust-lang/rust/pull/113833/)
68+
- [Make `impl<Fd: AsFd>` impl take `?Sized`](https://github.com/rust-lang/rust/pull/114655/)
69+
- [`impl From<TryReserveError> for io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)
70+
71+
These APIs are now stable in const contexts:
72+
73+
- [`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)
74+
75+
<a id="1.78.0-Cargo"></a>
76+
77+
Cargo
78+
-----
79+
80+
- [Stabilize lockfile v4](https://github.com/rust-lang/cargo/pull/12852/)
81+
- [Respect `rust-version` when generating lockfile](https://github.com/rust-lang/cargo/pull/12861/)
82+
- [Control `--charset` via auto-detecting config value](https://github.com/rust-lang/cargo/pull/13337/)
83+
- [Support `target.<triple>.rustdocflags` officially](https://github.com/rust-lang/cargo/pull/13197/)
84+
- [Stabilize global cache data tracking](https://github.com/rust-lang/cargo/pull/13492/)
85+
86+
<a id="1.78.0-Misc"></a>
87+
88+
Misc
89+
----
90+
91+
- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as RUSTC_WRAPPER when building doctests](https://github.com/rust-lang/rust/pull/114651/)
92+
93+
<a id="1.78.0-Compatibility-Notes"></a>
94+
95+
Compatibility Notes
96+
-------------------
97+
98+
- [Many unsafe precondition checks now run for user code with debug assertions enabled](https://github.com/rust-lang/rust/pull/120594/)
99+
This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable.
100+
- [riscv only supports split_debuginfo=off for now](https://github.com/rust-lang/rust/pull/120518/)
101+
- [Consistently check bounds on hidden types of `impl Trait`](https://github.com/rust-lang/rust/pull/121679)
102+
- [Change equality of higher ranked types to not rely on subtyping](https://github.com/rust-lang/rust/pull/118247)
103+
- [When called, additionally check bounds on normalized function return type](https://github.com/rust-lang/rust/pull/118882)
104+
- [Expand coverage for `arithmetic_overflow` lint](https://github.com/rust-lang/rust/pull/119432/)
105+
106+
<a id="1.78.0-Internal-Changes"></a>
107+
108+
Internal Changes
109+
----------------
110+
111+
These changes do not affect any public interfaces of Rust, but they represent
112+
significant improvements to the performance or internals of rustc and related
113+
tools.
114+
115+
- [Update to LLVM 18](https://github.com/rust-lang/rust/pull/120055/)
116+
- [Build `rustc` with 1CGU on `x86_64-pc-windows-msvc`](https://github.com/rust-lang/rust/pull/112267/)
117+
- [Build `rustc` with 1CGU on `x86_64-apple-darwin`](https://github.com/rust-lang/rust/pull/112268/)
118+
- [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/)
119+
- [Windows: Implement condvar, mutex and rwlock using futex](https://github.com/rust-lang/rust/pull/121956/)
120+
1121
Version 1.77.2 (2024-04-09)
2122
===========================
3123

@@ -99,7 +219,7 @@ Cargo
99219

100220
- [Extend the build directive syntax with `cargo::`.](https://github.com/rust-lang/cargo/pull/12201/)
101221
- [Stabilize metadata `id` format as `PackageIDSpec`.](https://github.com/rust-lang/cargo/pull/12914/)
102-
- [Pull out as `cargo-util-schemas` as a crate.](https://github.com/rust-lang/cargo/pull/13178/)
222+
- [Pull out `cargo-util-schemas` as a crate.](https://github.com/rust-lang/cargo/pull/13178/)
103223
- [Strip all debuginfo when debuginfo is not requested.](https://github.com/rust-lang/cargo/pull/13257/)
104224
- [Inherit jobserver from env for all kinds of runners.](https://github.com/rust-lang/cargo/pull/12776/)
105225
- [Deprecate rustc plugin support in cargo.](https://github.com/rust-lang/cargo/pull/13248/)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
From 0d741cf82c3c908616abd39dc84ebf7d8702e0c3 Mon Sep 17 00:00:00 2001
2+
From: Chris Denton <[email protected]>
3+
Date: Tue, 16 Apr 2024 15:51:34 +0000
4+
Subject: [PATCH] Revert use raw-dylib for Windows futex APIs
5+
6+
---
7+
library/std/src/sys/pal/windows/c.rs | 14 +-------------
8+
1 file changed, 1 insertion(+), 13 deletions(-)
9+
10+
diff --git a/library/std/src/sys/pal/windows/c.rs b/library/std/src/sys/pal/windows/c.rs
11+
index 9d58ce05f01..1c828bac4b6 100644
12+
--- a/library/std/src/sys/pal/windows/c.rs
13+
+++ b/library/std/src/sys/pal/windows/c.rs
14+
@@ -357,19 +357,7 @@ pub fn GetTempPath2W(bufferlength: u32, buffer: PWSTR) -> u32 {
15+
}
16+
17+
#[cfg(not(target_vendor = "win7"))]
18+
-// Use raw-dylib to import synchronization functions to workaround issues with the older mingw import library.
19+
-#[cfg_attr(
20+
- target_arch = "x86",
21+
- link(
22+
- name = "api-ms-win-core-synch-l1-2-0",
23+
- kind = "raw-dylib",
24+
- import_name_type = "undecorated"
25+
- )
26+
-)]
27+
-#[cfg_attr(
28+
- not(target_arch = "x86"),
29+
- link(name = "api-ms-win-core-synch-l1-2-0", kind = "raw-dylib")
30+
-)]
31+
+#[link(name = "synchronization")]
32+
extern "system" {
33+
pub fn WaitOnAddress(
34+
address: *const c_void,
35+
--
36+
2.42.0.windows.2
37+

library/std/src/sys/pal/windows/c.rs

+13-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,19 @@ compat_fn_with_fallback! {
357357
}
358358

359359
#[cfg(not(target_vendor = "win7"))]
360-
#[link(name = "synchronization")]
360+
// Use raw-dylib to import synchronization functions to workaround issues with the older mingw import library.
361+
#[cfg_attr(
362+
target_arch = "x86",
363+
link(
364+
name = "api-ms-win-core-synch-l1-2-0",
365+
kind = "raw-dylib",
366+
import_name_type = "undecorated"
367+
)
368+
)]
369+
#[cfg_attr(
370+
not(target_arch = "x86"),
371+
link(name = "api-ms-win-core-synch-l1-2-0", kind = "raw-dylib")
372+
)]
361373
extern "system" {
362374
pub fn WaitOnAddress(
363375
address: *const c_void,

src/ci/channel

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
beta
1+
stable

0 commit comments

Comments
 (0)