|
| 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 | +- [Add `non_local_definitions` lint for non-local `impl` definitions in functions](https://github.com/rust-lang/rust/pull/120393/) |
| 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 only works with 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 | +- [align_offset, align_to: no longer allow implementations to spuriously fail to align](https://github.com/rust-lang/rust/pull/121201/) |
| 20 | +- [Split refining_impl_trait lint into `_reachable`, `_internal` variants](https://github.com/rust-lang/rust/pull/121720/) |
| 21 | +- [Make `ConstPropLint` lint run on promoteds](https://github.com/rust-lang/rust/pull/119432/) |
| 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 | +- [Extend `invalid_reference_casting` to include references casting to bigger memory layout](https://github.com/rust-lang/rust/pull/118983/) |
| 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 | +- [Update to LLVM 18](https://github.com/rust-lang/rust/pull/120055/) |
| 34 | + |
| 35 | +Target changes: |
| 36 | + |
| 37 | +- [Increase minimum to Windows 10 for tier 2 platform support](https://github.com/rust-lang/rust/pull/115141/) |
| 38 | + - [Enables CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1 Windows](https://github.com/rust-lang/rust/pull/120820/) |
| 39 | +- [Add `wasm32-wasip1` tier 2 (without host tools) target](https://github.com/rust-lang/rust/pull/120468/) |
| 40 | +- [Add `arm64ec-pc-windows-msvc` tier 3 target](https://github.com/rust-lang/rust/pull/119199/) |
| 41 | +- [Add `loongarch64-unknown-linux-musl` tier 3 target](https://github.com/rust-lang/rust/pull/121832/) |
| 42 | +- [Add `armv8r-none-eabihf` tier 3 target for the Cortex-R52](https://github.com/rust-lang/rust/pull/110482/) |
| 43 | +- [Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads`](https://github.com/rust-lang/rust/pull/122170/) |
| 44 | +- [Add a new `wasm32-wasi-preview2` target](https://github.com/rust-lang/rust/pull/119616/) |
| 45 | + |
| 46 | +- [coverage: Split out counter increment sites from BCB node/edge counters](https://github.com/rust-lang/rust/pull/120564/) |
| 47 | +- [coverage: Improve handling of function/closure spans](https://github.com/rust-lang/rust/pull/120569/) |
| 48 | +- [Only generate a ptrtoint in AtomicPtr codegen when absolutely necessary](https://github.com/rust-lang/rust/pull/122220/) |
| 49 | + |
| 50 | +<a id="1.78.0-Libraries"></a> |
| 51 | + |
| 52 | +Libraries |
| 53 | +--------- |
| 54 | +- [Optimize away poison guards when std is built with panic=abort](https://github.com/rust-lang/rust/pull/100603/) |
| 55 | +- [PartialEq, PartialOrd: update and synchronize handling of transitive chains](https://github.com/rust-lang/rust/pull/115386/) |
| 56 | +- [Toggle assert_unsafe_precondition in codegen instead of expansion](https://github.com/rust-lang/rust/pull/120594/) |
| 57 | +- [Bump Unicode to version 15.1.0, regenerate tables](https://github.com/rust-lang/rust/pull/120777/) |
| 58 | +- [Implement unwind safety for Condvar on all platforms ](https://github.com/rust-lang/rust/pull/121768/) |
| 59 | +- [Windows: Implement condvar, mutex and rwlock using futex](https://github.com/rust-lang/rust/pull/121956/) |
| 60 | +- [Replace pthread `RwLock` with custom implementation](https://github.com/rust-lang/rust/pull/110211/) |
| 61 | +- [Add `#[rustc_no_mir_inline]` for standard library UB checks](https://github.com/rust-lang/rust/pull/121114/) |
| 62 | +- [Add ASCII fast-path for `char::is_grapheme_extended`](https://github.com/rust-lang/rust/pull/121138/) |
| 63 | +- [Always inline check in `assert_unsafe_precondition` with cfg(debug_assertions)](https://github.com/rust-lang/rust/pull/121196/) |
| 64 | + |
| 65 | +<a id="1.78.0-Stabilized-APIs"></a> |
| 66 | + |
| 67 | +Stabilized APIs |
| 68 | +--------------- |
| 69 | + |
| 70 | +- [Add Read Impl for &Stdin](https://github.com/rust-lang/rust/pull/99153/) |
| 71 | +- [`std::error::Error` -> Trait Implementations: lifetimes consistency improvement](https://github.com/rust-lang/rust/pull/113833/) |
| 72 | +- [Make `impl<Fd: AsFd>` impl take `?Sized`](https://github.com/rust-lang/rust/pull/114655/) |
| 73 | +- [impl From<TryReserveError> for `io::Error`](https://github.com/rust-lang/rust/pull/121403/) |
| 74 | +- [Make `Barrier::new()` const](https://github.com/rust-lang/rust/pull/119536/) |
| 75 | + |
| 76 | +<a id="1.78.0-Cargo"></a> |
| 77 | + |
| 78 | +Cargo |
| 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 | +- [Allow `--precise` to allow yanked versions in `cargo update`](https://github.com/rust-lang/cargo/pull/13333/) |
| 85 | +- [Stabilize global cache data tracking.](https://github.com/rust-lang/cargo/pull/13492/) |
| 86 | + |
| 87 | +<a id="1.78.0-Misc"></a> |
| 88 | + |
| 89 | +Misc |
| 90 | +---- |
| 91 | + |
| 92 | +- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as RUSTC_WRAPPER when building doctests](https://github.com/rust-lang/rust/pull/114651/) |
| 93 | + |
| 94 | +<a id="1.78.0-Compatibility-Notes"></a> |
| 95 | + |
| 96 | +Compatibility Notes |
| 97 | +------------------- |
| 98 | +- [riscv only supports split_debuginfo=off for now](https://github.com/rust-lang/rust/pull/120518/) |
| 99 | + |
| 100 | + |
| 101 | +<a id="1.78.0-Internal-Changes"></a> |
| 102 | + |
| 103 | +Internal Changes |
| 104 | +---------------- |
| 105 | + |
| 106 | +These changes do not affect any public interfaces of Rust, but they represent |
| 107 | +significant improvements to the performance or internals of rustc and related |
| 108 | +tools. |
| 109 | + |
| 110 | +- [Build `rustc` with 1CGU on `x86_64-pc-windows-msvc`](https://github.com/rust-lang/rust/pull/112267/) |
| 111 | +- [Build `rustc` with 1CGU on `x86_64-apple-darwin`](https://github.com/rust-lang/rust/pull/112268/) |
| 112 | +- [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/) |
| 113 | + |
1 | 114 | Version 1.77.1 (2024-03-28)
|
2 | 115 | ===========================
|
3 | 116 |
|
|
0 commit comments