Add 1.82 release notes
This commit is contained in:
parent
1d71891c6b
commit
5fef4621c3
97
RELEASES.md
97
RELEASES.md
@ -1,3 +1,100 @@
|
|||||||
|
Version 1.82.0 (2024-10-17)
|
||||||
|
==========================
|
||||||
|
|
||||||
|
<a id="1.82.0-Language"></a>
|
||||||
|
|
||||||
|
Language
|
||||||
|
--------
|
||||||
|
- [Don't make statement nonterminals match pattern nonterminals](https://github.com/rust-lang/rust/pull/120221/)
|
||||||
|
- [Implement lint against ambiguous negative literals](https://github.com/rust-lang/rust/pull/121364/)
|
||||||
|
- [Patterns matching empty types can now be omitted in common cases](https://github.com/rust-lang/rust/pull/122792)
|
||||||
|
- [size_of_val_raw: for length 0 this is safe to call](https://github.com/rust-lang/rust/pull/126152/)
|
||||||
|
- [Reorder trait bound modifiers *after* `for<...>` binder in trait bounds](https://github.com/rust-lang/rust/pull/127054/)
|
||||||
|
- [Stabilize opaque type precise capturing (RFC 3617)](https://github.com/rust-lang/rust/pull/127672)
|
||||||
|
- [Stabilize explicit opt-in to unsafe attributes](https://github.com/rust-lang/rust/pull/128771)
|
||||||
|
|
||||||
|
|
||||||
|
<a id="1.82.0-Compiler"></a>
|
||||||
|
|
||||||
|
Compiler
|
||||||
|
--------
|
||||||
|
- [Promote riscv64gc-unknown-linux-musl to tier 2](https://github.com/rust-lang/rust/pull/122049)
|
||||||
|
- [Improved diagnostics to explain why a pattern is unreachable](https://github.com/rust-lang/rust/pull/128034)
|
||||||
|
- [The compiler now triggers the unreachable code warning properly for async functions that don't return/are `-> !`](https://github.com/rust-lang/rust/pull/128443)
|
||||||
|
- [Promote `wasm32-wasip2` to Tier 2.](https://github.com/rust-lang/rust/pull/126967/)
|
||||||
|
|
||||||
|
|
||||||
|
<a id="1.82.0-Libraries"></a>
|
||||||
|
|
||||||
|
Libraries
|
||||||
|
---------
|
||||||
|
- [Implement DoubleEnded and ExactSize for Take<Repeat> and Take<RepeatWith>](https://github.com/rust-lang/rust/pull/106943/)
|
||||||
|
- [Stabilize Wasm relaxed SIMD](https://github.com/rust-lang/rust/pull/117468/)
|
||||||
|
- [Stabilize const `{integer}::from_str_radix` i.e. `const_int_from_str`](https://github.com/rust-lang/rust/pull/124941/)
|
||||||
|
- [CommandExt::before_exec: deprecate safety in edition 2024](https://github.com/rust-lang/rust/pull/125970/)
|
||||||
|
- [CloneToUninit impls](https://github.com/rust-lang/rust/pull/126877/)
|
||||||
|
- [impl `Default` for collection iterators that don't already have it](https://github.com/rust-lang/rust/pull/128261/)
|
||||||
|
|
||||||
|
|
||||||
|
<a id="1.82.0-Stabilized-APIs"></a>
|
||||||
|
|
||||||
|
Stabilized APIs
|
||||||
|
---------------
|
||||||
|
|
||||||
|
<a id="1.82.0-Cargo"></a>
|
||||||
|
|
||||||
|
Cargo
|
||||||
|
-----
|
||||||
|
- [feat: Add `info` cargo subcommand](https://github.com/rust-lang/cargo/pull/14141/)
|
||||||
|
|
||||||
|
<a id="1.82.0-Compatibility-Notes"></a>
|
||||||
|
|
||||||
|
Compatibility Notes
|
||||||
|
-------------------
|
||||||
|
- [`addr_of(_mut)!` macros and the newly stabilized `&raw (const|mut)` are now safe to use with all static items](https://github.com/rust-lang/rust/pull/125834)
|
||||||
|
- We now [disallow setting some built-in cfgs via the command-line](https://github.com/rust-lang/rust/pull/126158) with the newly added [`explicit_builtin_cfgs_in_flags`](https://doc.rust-lang.org/rustc/lints/listing/deny-by-default.html#explicit-builtin-cfgs-in-flags) lint in order to prevent incoherent state, eg. `windows` cfg active but target is Linux based. The appropriate [`rustc` flag](https://doc.rust-lang.org/rustc/command-line-arguments.html) should be used instead.
|
||||||
|
- [Stabilize `&raw const` and `&raw mut` operators (RFC 2582)](https://github.com/rust-lang/rust/pull/127679)
|
||||||
|
- [Stabilize unsafe extern blocks (RFC 3484)](https://github.com/rust-lang/rust/pull/127921)
|
||||||
|
- The standard library has a new implementation of `binary_search` which is significantly improves performance (#128254). However when a sorted slice has multiple values which compare equal, the new implementation may select a different value among the equal ones than the old implementation.
|
||||||
|
- [illumos/Solaris now sets `MSG_NOSIGNAL` when writing to sockets](https://github.com/rust-lang/rust/pull/128259). This avoids killing the process with SIGPIPE when writing to a closed socket, which matches the existing behavior on other UNIX targets.
|
||||||
|
- [Stabilize offset_of_nested](https://github.com/rust-lang/rust/pull/128284)
|
||||||
|
- [Removes a problematic hack that always passed the --whole-archive linker flag for tests, which may cause linker errors for code accidentally relying on it.](https://github.com/rust-lang/rust/pull/128400)
|
||||||
|
- The WebAssembly target features `multivalue` and `reference-types` are now
|
||||||
|
both enabled by default. These two features both have subtle changes implied
|
||||||
|
for generated WebAssembly binaries. For the `multivalue` feature, WebAssembly
|
||||||
|
target support has changed when upgrading to LLVM 19. Support for generating
|
||||||
|
functions with multiple returns no longer works and
|
||||||
|
`-Ctarget-feature=+multivalue` has a different meaning than it did in LLVM 18
|
||||||
|
and prior. There is no longer any supported means to generate a module that has
|
||||||
|
a function with multiple returns in WebAssembly from Rust source code. For the
|
||||||
|
`reference-types` feature the encoding of immediates in the `call_indirect`, a
|
||||||
|
commonly used instruction by the WebAssembly backend, has changed. Validators
|
||||||
|
and parsers which don't understand the `reference-types` proposal will no
|
||||||
|
longer accept modules produced by LLVM due to this change in encoding of
|
||||||
|
immediates. Additionally these features being enabled are encoded in the
|
||||||
|
`target_features` custom section and may affect downstream tooling such as
|
||||||
|
`wasm-opt` consuming the module. Generating a WebAssembly module that disables
|
||||||
|
default features requires `-Zbuild-std` support from Cargo and more information
|
||||||
|
can be found at
|
||||||
|
[rust-lang/rust#128511](https://github.com/rust-lang/rust/pull/128511).
|
||||||
|
- [Stabilize `const` arguments to inline asm](https://github.com/rust-lang/rust/pull/128570)
|
||||||
|
- [Promote aarch64-apple-darwin to Tier 1](https://github.com/rust-lang/rust/pull/128592)
|
||||||
|
- [stabilize floating-point arithmetic in `const fn`](https://github.com/rust-lang/rust/pull/128596)
|
||||||
|
- [float types: document NaN bit pattern guarantees](https://github.com/rust-lang/rust/pull/129559)
|
||||||
|
- [Rust now raises unsafety errors for union patterns in parameter-position](https://github.com/rust-lang/rust/pull/130531)
|
||||||
|
|
||||||
|
|
||||||
|
<a id="1.82.0-Internal-Changes"></a>
|
||||||
|
|
||||||
|
Internal Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
These changes do not affect any public interfaces of Rust, but they represent
|
||||||
|
significant improvements to the performance or internals of rustc and related
|
||||||
|
tools.
|
||||||
|
|
||||||
|
- [Update to LLVM 19](https://github.com/rust-lang/rust/pull/127513)
|
||||||
|
|
||||||
Version 1.81.0 (2024-09-05)
|
Version 1.81.0 (2024-09-05)
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user