-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Add 1.74 release notes #116778
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add 1.74 release notes #116778
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
@@ -1,3 +1,118 @@ | ||||||||
Version 1.74.0 (2023-11-16) | ||||||||
========================== | ||||||||
|
||||||||
<a id="1.74.0-Language"></a> | ||||||||
|
||||||||
Language | ||||||||
-------- | ||||||||
|
||||||||
- [Codify that `std::mem::Discriminant<T>` does not depend on any lifetimes in T](https://github.com/rust-lang/rust/pull/104299/) | ||||||||
- [Replace `private_in_public` lint with `private_interfaces` and `private_bounds` per RFC 2145](https://github.com/rust-lang/rust/pull/113126/) | ||||||||
Read more in [RFC 2145](https://rust-lang.github.io/rfcs/2145-type-privacy.html). | ||||||||
- [Allow explicit `#[repr(Rust)]`](https://github.com/rust-lang/rust/pull/114201/) | ||||||||
- [closure field capturing: don't depend on alignment of packed fields](https://github.com/rust-lang/rust/pull/115315/) | ||||||||
- [Enable MIR-based drop-tracking for `async` blocks](https://github.com/rust-lang/rust/pull/107421/) | ||||||||
|
||||||||
<a id="1.74.0-Compiler"></a> | ||||||||
|
||||||||
Compiler | ||||||||
-------- | ||||||||
|
||||||||
- [stabilize combining +bundle and +whole-archive link modifiers](https://github.com/rust-lang/rust/pull/113301/) | ||||||||
- [Stabilize `PATH` option for `--print KIND=PATH`](https://github.com/rust-lang/rust/pull/114183/) | ||||||||
- [Enable ASAN/LSAN/TSAN for `*-apple-ios-macabi`](https://github.com/rust-lang/rust/pull/115644/) | ||||||||
- [Promote loongarch64-unknown-none* to Tier 2](https://github.com/rust-lang/rust/pull/115368/) | ||||||||
- [Add `i686-pc-windows-gnullvm` as a tier 3 target](https://github.com/rust-lang/rust/pull/115687/) | ||||||||
|
||||||||
<a id="1.74.0-Libraries"></a> | ||||||||
|
||||||||
Libraries | ||||||||
--------- | ||||||||
|
||||||||
- [Implement `From<OwnedFd/Handle>` for ChildStdin/out/err](https://github.com/rust-lang/rust/pull/98704/) | ||||||||
- [Implement `From<{&,&mut} [T; N]>` for `Vec<T>` where `T: Clone`](https://github.com/rust-lang/rust/pull/111278/) | ||||||||
- [impl Step for IP addresses](https://github.com/rust-lang/rust/pull/113748/) | ||||||||
- [Implement `From<[T; N]>` for `Rc<[T]>` and `Arc<[T]>`](https://github.com/rust-lang/rust/pull/114041/) | ||||||||
- [`impl TryFrom<char> for u16`](https://github.com/rust-lang/rust/pull/114065/) | ||||||||
- [Stabilize `io_error_other` feature](https://github.com/rust-lang/rust/pull/115453/) | ||||||||
- [Stabilize the `Saturating` type](https://github.com/rust-lang/rust/pull/115477/) | ||||||||
- [Stabilize const_transmute_copy](https://github.com/rust-lang/rust/pull/115520/) | ||||||||
|
||||||||
<a id="1.74.0-Stabilized-APIs"></a> | ||||||||
|
||||||||
Stabilized APIs | ||||||||
--------------- | ||||||||
Mark-Simulacrum marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
|
||||||||
- [`core::num::Saturating`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html) | ||||||||
- [`impl From<io::Stdout> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStdout%3E-for-Stdio) | ||||||||
- [`impl From<io::Stderr> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) | ||||||||
- [`impl From<OwnedHandle> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) | ||||||||
- [`impl From<OwnedFd> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) | ||||||||
- [`std::ffi::OsString::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.from_encoded_bytes_unchecked) | ||||||||
- [`std::ffi::OsString::into_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.into_encoded_bytes) | ||||||||
- [`std::ffi::OsStr::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.from_encoded_bytes_unchecked) | ||||||||
- [`std::ffi::OsStr::as_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.as_encoded_bytes) | ||||||||
- [`std::io::Error::other`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.other) | ||||||||
- [`impl TryFrom<char> for u16`](https://doc.rust-lang.org/stable/std/primitive.u16.html#impl-TryFrom%3Cchar%3E-for-u16) | ||||||||
- [`impl<T: Clone, const N: usize> From<&[T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E) | ||||||||
- [`impl<T: Clone, const N: usize> From<&mut [T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26mut+%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E) | ||||||||
- [`impl<T, const N: usize> From<[T; N]> for Arc<[T]>`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3C%5BT;+N%5D%3E-for-Arc%3C%5BT%5D,+Global%3E) | ||||||||
- [`impl<T, const N: usize> From<[T; N]> for Rc<[T]>`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3C%5BT;+N%5D%3E-for-Rc%3C%5BT%5D,+Global%3E) | ||||||||
|
||||||||
These APIs are now stable in const contexts: | ||||||||
|
||||||||
- [`core::mem::transmute_copy`](https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html) | ||||||||
- [`str::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii) | ||||||||
- [`[u8]::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii) | ||||||||
|
||||||||
<a id="1.74.0-Cargo"></a> | ||||||||
|
||||||||
Cargo | ||||||||
----- | ||||||||
|
||||||||
- [fix: Set MSRV for internal packages](https://github.com/rust-lang/cargo/pull/12381/) | ||||||||
- [config: merge lists in precedence order](https://github.com/rust-lang/cargo/pull/12515/) | ||||||||
- [fix(update): Clarify meaning of --aggressive as --recursive](https://github.com/rust-lang/cargo/pull/12544/) | ||||||||
- [fix(update): Make `-p` more convenient by being positional](https://github.com/rust-lang/cargo/pull/12545/) | ||||||||
- [feat(help): Add styling to help output ](https://github.com/rust-lang/cargo/pull/12578/) | ||||||||
- [feat(pkgid): Allow incomplete versions when unambigious](https://github.com/rust-lang/cargo/pull/12614/) | ||||||||
- [feat: stabilize credential-process and registry-auth](https://github.com/rust-lang/cargo/pull/12649/) | ||||||||
- [feat(cli): Add '-n' to dry-run](https://github.com/rust-lang/cargo/pull/12660/) | ||||||||
- [Add support for `target.'cfg(..)'.linker`](https://github.com/rust-lang/cargo/pull/12535/) | ||||||||
- [Stabilize `--keep-going`](https://github.com/rust-lang/cargo/pull/12568/) | ||||||||
- [feat: Stabilize lints](https://github.com/rust-lang/cargo/pull/12648/) | ||||||||
|
||||||||
<a id="1.74.0-Rustdoc"></a> | ||||||||
|
||||||||
Rustdoc | ||||||||
------- | ||||||||
|
||||||||
- [Add warning block support in rustdoc](https://github.com/rust-lang/rust/pull/106561/) | ||||||||
- [Accept additional user-defined syntax classes in fenced code blocks](https://github.com/rust-lang/rust/pull/110800/) | ||||||||
- [rustdoc-search: add support for type parameters](https://github.com/rust-lang/rust/pull/112725/) | ||||||||
- [rustdoc: show inner enum and struct in type definition for concrete type](https://github.com/rust-lang/rust/pull/114855/) | ||||||||
|
||||||||
<a id="1.74.0-Compatibility-Notes"></a> | ||||||||
|
||||||||
Compatibility Notes | ||||||||
------------------- | ||||||||
|
||||||||
- [Raise minimum supported Apple OS versions](https://github.com/rust-lang/rust/pull/104385/) | ||||||||
- [make Cell::swap panic if the Cells partially overlap](https://github.com/rust-lang/rust/pull/114795/) | ||||||||
- [Reject invalid crate names in `--extern`](https://github.com/rust-lang/rust/pull/116001/) | ||||||||
- [Don't resolve generic impls that may be shadowed by dyn built-in impls](https://github.com/rust-lang/rust/pull/114941/) | ||||||||
|
||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. New compat note for #117054:
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Mark-Simulacrum this too was lost in the force push. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I have opened a PR to add them back. |
||||||||
<a id="1.74.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. | ||||||||
|
||||||||
Mark-Simulacrum marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
None this cycle. | ||||||||
|
||||||||
Version 1.73.0 (2023-10-05) | ||||||||
========================== | ||||||||
|
||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How did that miss getting a milestone? (now fixed)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Mark-Simulacrum your last force-push appears to have lost this addition.