| 
 | 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 | + | 
1 | 121 | Version 1.77.2 (2024-04-09)  | 
2 | 122 | ===========================  | 
3 | 123 | 
 
  | 
 | 
0 commit comments