rust-lang/rust (rust)
### [`v1.70`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1700-2023-06-01)
[Compare Source](https://togithub.com/rust-lang/rust/compare/1.69.0...1.70.0)
\==========================
## Language
- [Relax ordering rules for `asm!` operands](https://togithub.com/rust-lang/rust/pull/105798/)
- [Properly allow macro expanded `format_args` invocations to uses captures](https://togithub.com/rust-lang/rust/pull/106505/)
- [Lint ambiguous glob re-exports](https://togithub.com/rust-lang/rust/pull/107880/)
- [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://togithub.com/rust-lang/rust/pull/102256/)
## Compiler
- [Extend -Cdebuginfo with new options and named aliases](https://togithub.com/rust-lang/rust/pull/109808/)
This provides a smaller version of debuginfo for cases that only need line number information
(`-Cdebuginfo=line-tables-only`), which may eventually become the default for `-Cdebuginfo=1`.
- [Make `unused_allocation` lint against `Box::new` too](https://togithub.com/rust-lang/rust/pull/104363/)
- [Detect uninhabited types early in const eval](https://togithub.com/rust-lang/rust/pull/109435/)
- [Switch to LLD as default linker for {arm,thumb}v4t-none-eabi](https://togithub.com/rust-lang/rust/pull/109721/)
- [Add tier 3 target `loongarch64-unknown-linux-gnu`](https://togithub.com/rust-lang/rust/pull/96971)
- [Add tier 3 target for `i586-pc-nto-qnx700` (QNX Neutrino RTOS, version 7.0)](https://togithub.com/rust-lang/rust/pull/109173/),
- [Insert alignment checks for pointer dereferences as debug assertions](https://togithub.com/rust-lang/rust/pull/98112)
This catches undefined behavior at runtime, and may cause existing code to fail.
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
## Libraries
- [Document NonZeroXxx layout guarantees](https://togithub.com/rust-lang/rust/pull/94786/)
- [Windows: make `Command` prefer non-verbatim paths](https://togithub.com/rust-lang/rust/pull/96391/)
- [Implement Default for some alloc/core iterators](https://togithub.com/rust-lang/rust/pull/99929/)
- [Fix handling of trailing bare CR in str::lines](https://togithub.com/rust-lang/rust/pull/100311/)
- [allow negative numeric literals in `concat!`](https://togithub.com/rust-lang/rust/pull/106844/)
- [Add documentation about the memory layout of `Cell`](https://togithub.com/rust-lang/rust/pull/106921/)
- [Use `partial_cmp` to implement tuple `lt`/`le`/`ge`/`gt`](https://togithub.com/rust-lang/rust/pull/108157/)
- [Stabilize `atomic_as_ptr`](https://togithub.com/rust-lang/rust/pull/108419/)
- [Stabilize `nonnull_slice_from_raw_parts`](https://togithub.com/rust-lang/rust/pull/97506/)
- [Partial stabilization of `once_cell`](https://togithub.com/rust-lang/rust/pull/105587/)
- [Stabilize `nonzero_min_max`](https://togithub.com/rust-lang/rust/pull/106633/)
- [Flatten/inline format_args!() and (string and int) literal arguments into format_args!()](https://togithub.com/rust-lang/rust/pull/106824/)
- [Stabilize movbe target feature](https://togithub.com/rust-lang/rust/pull/107711/)
- [don't splice from files into pipes in io::copy](https://togithub.com/rust-lang/rust/pull/108283/)
- [Add a builtin unstable `FnPtr` trait that is implemented for all function pointers](https://togithub.com/rust-lang/rust/pull/108080/)
This extends `Debug`, `Pointer`, `Hash`, `PartialEq`, `Eq`, `PartialOrd`, and `Ord`
implementations for function pointers with all ABIs.
## Stabilized APIs
- [`NonZero*::MIN/MAX`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI8.html#associatedconstant.MIN)
- [`BinaryHeap::retain`](https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html#method.retain)
- [`Default for std::collections::binary_heap::IntoIter`](https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.IntoIter.html)
- [`Default for std::collections::btree_map::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoIter.html)
- [`Default for std::collections::btree_map::{IntoKeys, Keys}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html)
- [`Default for std::collections::btree_map::{IntoValues, Values}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoValues.html)
- [`Default for std::collections::btree_map::Range`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.Range.html)
- [`Default for std::collections::btree_set::{IntoIter, Iter}`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.IntoIter.html)
- [`Default for std::collections::btree_set::Range`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.Range.html)
- [`Default for std::collections::linked_list::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/alloc/collections/linked_list/struct.IntoIter.html)
- [`Default for std::vec::IntoIter`](https://doc.rust-lang.org/stable/alloc/vec/struct.IntoIter.html#impl-Default-for-IntoIter%3CT,+A%3E)
- [`Default for std::iter::Chain`](https://doc.rust-lang.org/stable/std/iter/struct.Chain.html)
- [`Default for std::iter::Cloned`](https://doc.rust-lang.org/stable/std/iter/struct.Cloned.html)
- [`Default for std::iter::Copied`](https://doc.rust-lang.org/stable/std/iter/struct.Copied.html)
- [`Default for std::iter::Enumerate`](https://doc.rust-lang.org/stable/std/iter/struct.Enumerate.html)
- [`Default for std::iter::Flatten`](https://doc.rust-lang.org/stable/std/iter/struct.Flatten.html)
- [`Default for std::iter::Fuse`](https://doc.rust-lang.org/stable/std/iter/struct.Fuse.html)
- [`Default for std::iter::Rev`](https://doc.rust-lang.org/stable/std/iter/struct.Rev.html)
- [`Default for std::slice::Iter`](https://doc.rust-lang.org/stable/std/slice/struct.Iter.html)
- [`Default for std::slice::IterMut`](https://doc.rust-lang.org/stable/std/slice/struct.IterMut.html)
- [`Rc::into_inner`](https://doc.rust-lang.org/stable/alloc/rc/struct.Rc.html#method.into_inner)
- [`Arc::into_inner`](https://doc.rust-lang.org/stable/alloc/sync/struct.Arc.html#method.into_inner)
- [`std::cell::OnceCell`](https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html)
- [`Option::is_some_and`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_some_and)
- [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts)
- [`Result::is_ok_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_ok_and)
- [`Result::is_err_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_err_and)
- [`std::sync::atomic::Atomic*::as_ptr`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicU8.html#method.as_ptr)
- [`std::io::IsTerminal`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html)
- [`std::os::linux::net::SocketAddrExt`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.SocketAddrExt.html)
- [`std::os::unix::net::UnixDatagram::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.bind_addr)
- [`std::os::unix::net::UnixDatagram::connect_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.connect_addr)
- [`std::os::unix::net::UnixDatagram::send_to_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.send_to_addr)
- [`std::os::unix::net::UnixListener::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixListener.html#method.bind_addr)
- [`std::path::Path::as_mut_os_str`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.as_mut_os_str)
- [`std::sync::OnceLock`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html)
## Cargo
- [Add `CARGO_PKG_README`](https://togithub.com/rust-lang/cargo/pull/11645/)
- [Make `sparse` the default protocol for crates.io](https://togithub.com/rust-lang/cargo/pull/11791/)
- [Accurately show status when downgrading dependencies](https://togithub.com/rust-lang/cargo/pull/11839/)
- [Use registry.default for login/logout](https://togithub.com/rust-lang/cargo/pull/11949/)
- [Stabilize `cargo logout`](https://togithub.com/rust-lang/cargo/pull/11950/)
## Misc
- [Stabilize rustdoc `--test-run-directory`](https://togithub.com/rust-lang/rust/pull/103682/)
## Compatibility Notes
- [Prevent stable `libtest` from supporting `-Zunstable-options`](https://togithub.com/rust-lang/rust/pull/109044/)
- [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://togithub.com/rust-lang/rust/pull/102256/)
- [WebAssembly targets enable `sign-ext` and `mutable-globals` features in codegen](https://togithub.com/rust-lang/rust/issues/109807)
This may cause incompatibility with older execution environments.
- [Insert alignment checks for pointer dereferences as debug assertions](https://togithub.com/rust-lang/rust/pull/98112)
This catches undefined behavior at runtime, and may cause existing code to fail.
## 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.
- [Upgrade to LLVM 16](https://togithub.com/rust-lang/rust/pull/109474/)
- [Use SipHash-1-3 instead of SipHash-2-4 for StableHasher](https://togithub.com/rust-lang/rust/pull/107925/)
Configuration
📅 Schedule: Branch creation - " *" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
1.69
->1.70
1.76
(+5)Release Notes
rust-lang/rust (rust)
### [`v1.70`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1700-2023-06-01) [Compare Source](https://togithub.com/rust-lang/rust/compare/1.69.0...1.70.0) \========================== ## Language - [Relax ordering rules for `asm!` operands](https://togithub.com/rust-lang/rust/pull/105798/) - [Properly allow macro expanded `format_args` invocations to uses captures](https://togithub.com/rust-lang/rust/pull/106505/) - [Lint ambiguous glob re-exports](https://togithub.com/rust-lang/rust/pull/107880/) - [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://togithub.com/rust-lang/rust/pull/102256/) ## Compiler - [Extend -Cdebuginfo with new options and named aliases](https://togithub.com/rust-lang/rust/pull/109808/) This provides a smaller version of debuginfo for cases that only need line number information (`-Cdebuginfo=line-tables-only`), which may eventually become the default for `-Cdebuginfo=1`. - [Make `unused_allocation` lint against `Box::new` too](https://togithub.com/rust-lang/rust/pull/104363/) - [Detect uninhabited types early in const eval](https://togithub.com/rust-lang/rust/pull/109435/) - [Switch to LLD as default linker for {arm,thumb}v4t-none-eabi](https://togithub.com/rust-lang/rust/pull/109721/) - [Add tier 3 target `loongarch64-unknown-linux-gnu`](https://togithub.com/rust-lang/rust/pull/96971) - [Add tier 3 target for `i586-pc-nto-qnx700` (QNX Neutrino RTOS, version 7.0)](https://togithub.com/rust-lang/rust/pull/109173/), - [Insert alignment checks for pointer dereferences as debug assertions](https://togithub.com/rust-lang/rust/pull/98112) This catches undefined behavior at runtime, and may cause existing code to fail. Refer to Rust's \[platform support page]\[platform-support-doc] for more information on Rust's tiered platform support. ## Libraries - [Document NonZeroXxx layout guarantees](https://togithub.com/rust-lang/rust/pull/94786/) - [Windows: make `Command` prefer non-verbatim paths](https://togithub.com/rust-lang/rust/pull/96391/) - [Implement Default for some alloc/core iterators](https://togithub.com/rust-lang/rust/pull/99929/) - [Fix handling of trailing bare CR in str::lines](https://togithub.com/rust-lang/rust/pull/100311/) - [allow negative numeric literals in `concat!`](https://togithub.com/rust-lang/rust/pull/106844/) - [Add documentation about the memory layout of `Cell`](https://togithub.com/rust-lang/rust/pull/106921/) - [Use `partial_cmp` to implement tuple `lt`/`le`/`ge`/`gt`](https://togithub.com/rust-lang/rust/pull/108157/) - [Stabilize `atomic_as_ptr`](https://togithub.com/rust-lang/rust/pull/108419/) - [Stabilize `nonnull_slice_from_raw_parts`](https://togithub.com/rust-lang/rust/pull/97506/) - [Partial stabilization of `once_cell`](https://togithub.com/rust-lang/rust/pull/105587/) - [Stabilize `nonzero_min_max`](https://togithub.com/rust-lang/rust/pull/106633/) - [Flatten/inline format_args!() and (string and int) literal arguments into format_args!()](https://togithub.com/rust-lang/rust/pull/106824/) - [Stabilize movbe target feature](https://togithub.com/rust-lang/rust/pull/107711/) - [don't splice from files into pipes in io::copy](https://togithub.com/rust-lang/rust/pull/108283/) - [Add a builtin unstable `FnPtr` trait that is implemented for all function pointers](https://togithub.com/rust-lang/rust/pull/108080/) This extends `Debug`, `Pointer`, `Hash`, `PartialEq`, `Eq`, `PartialOrd`, and `Ord` implementations for function pointers with all ABIs. ## Stabilized APIs - [`NonZero*::MIN/MAX`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI8.html#associatedconstant.MIN) - [`BinaryHeap::retain`](https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html#method.retain) - [`Default for std::collections::binary_heap::IntoIter`](https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.IntoIter.html) - [`Default for std::collections::btree_map::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoIter.html) - [`Default for std::collections::btree_map::{IntoKeys, Keys}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html) - [`Default for std::collections::btree_map::{IntoValues, Values}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoValues.html) - [`Default for std::collections::btree_map::Range`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.Range.html) - [`Default for std::collections::btree_set::{IntoIter, Iter}`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.IntoIter.html) - [`Default for std::collections::btree_set::Range`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.Range.html) - [`Default for std::collections::linked_list::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/alloc/collections/linked_list/struct.IntoIter.html) - [`Default for std::vec::IntoIter`](https://doc.rust-lang.org/stable/alloc/vec/struct.IntoIter.html#impl-Default-for-IntoIter%3CT,+A%3E) - [`Default for std::iter::Chain`](https://doc.rust-lang.org/stable/std/iter/struct.Chain.html) - [`Default for std::iter::Cloned`](https://doc.rust-lang.org/stable/std/iter/struct.Cloned.html) - [`Default for std::iter::Copied`](https://doc.rust-lang.org/stable/std/iter/struct.Copied.html) - [`Default for std::iter::Enumerate`](https://doc.rust-lang.org/stable/std/iter/struct.Enumerate.html) - [`Default for std::iter::Flatten`](https://doc.rust-lang.org/stable/std/iter/struct.Flatten.html) - [`Default for std::iter::Fuse`](https://doc.rust-lang.org/stable/std/iter/struct.Fuse.html) - [`Default for std::iter::Rev`](https://doc.rust-lang.org/stable/std/iter/struct.Rev.html) - [`Default for std::slice::Iter`](https://doc.rust-lang.org/stable/std/slice/struct.Iter.html) - [`Default for std::slice::IterMut`](https://doc.rust-lang.org/stable/std/slice/struct.IterMut.html) - [`Rc::into_inner`](https://doc.rust-lang.org/stable/alloc/rc/struct.Rc.html#method.into_inner) - [`Arc::into_inner`](https://doc.rust-lang.org/stable/alloc/sync/struct.Arc.html#method.into_inner) - [`std::cell::OnceCell`](https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html) - [`Option::is_some_and`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_some_and) - [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts) - [`Result::is_ok_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_ok_and) - [`Result::is_err_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_err_and) - [`std::sync::atomic::Atomic*::as_ptr`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicU8.html#method.as_ptr) - [`std::io::IsTerminal`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html) - [`std::os::linux::net::SocketAddrExt`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.SocketAddrExt.html) - [`std::os::unix::net::UnixDatagram::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.bind_addr) - [`std::os::unix::net::UnixDatagram::connect_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.connect_addr) - [`std::os::unix::net::UnixDatagram::send_to_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.send_to_addr) - [`std::os::unix::net::UnixListener::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixListener.html#method.bind_addr) - [`std::path::Path::as_mut_os_str`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.as_mut_os_str) - [`std::sync::OnceLock`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html) ## Cargo - [Add `CARGO_PKG_README`](https://togithub.com/rust-lang/cargo/pull/11645/) - [Make `sparse` the default protocol for crates.io](https://togithub.com/rust-lang/cargo/pull/11791/) - [Accurately show status when downgrading dependencies](https://togithub.com/rust-lang/cargo/pull/11839/) - [Use registry.default for login/logout](https://togithub.com/rust-lang/cargo/pull/11949/) - [Stabilize `cargo logout`](https://togithub.com/rust-lang/cargo/pull/11950/) ## Misc - [Stabilize rustdoc `--test-run-directory`](https://togithub.com/rust-lang/rust/pull/103682/) ## Compatibility Notes - [Prevent stable `libtest` from supporting `-Zunstable-options`](https://togithub.com/rust-lang/rust/pull/109044/) - [Perform const and unsafe checking for expressions in `let _ = expr` position.](https://togithub.com/rust-lang/rust/pull/102256/) - [WebAssembly targets enable `sign-ext` and `mutable-globals` features in codegen](https://togithub.com/rust-lang/rust/issues/109807) This may cause incompatibility with older execution environments. - [Insert alignment checks for pointer dereferences as debug assertions](https://togithub.com/rust-lang/rust/pull/98112) This catches undefined behavior at runtime, and may cause existing code to fail. ## 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. - [Upgrade to LLVM 16](https://togithub.com/rust-lang/rust/pull/109474/) - [Use SipHash-1-3 instead of SipHash-2-4 for StableHasher](https://togithub.com/rust-lang/rust/pull/107925/)Configuration
📅 Schedule: Branch creation - " *" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.