1.70.0
版本发布时间: 2023-06-02 02:52:53
rust-lang/rust最新发布版本:1.77.2(2024-04-10 06:00:34)
Language
-
Relax ordering rules for
asm!
operands -
Properly allow macro expanded
format_args
invocations to uses captures - Lint ambiguous glob re-exports
-
Perform const and unsafe checking for expressions in
let _ = expr
position.
Compiler
-
Extend -Cdebuginfo with new options and named aliases 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 againstBox::new
too - Detect uninhabited types early in const eval
- Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
-
Add tier 3 target
loongarch64-unknown-linux-gnu
-
Add tier 3 target for
i586-pc-nto-qnx700
(QNX Neutrino RTOS, version 7.0), - Insert alignment checks for pointer dereferences as debug assertions This catches undefined behavior at runtime, and may cause existing code to fail.
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- Document NonZeroXxx layout guarantees
-
Windows: make
Command
prefer non-verbatim paths - Implement Default for some alloc/core iterators
- Fix handling of trailing bare CR in str::lines
-
allow negative numeric literals in
concat!
-
Add documentation about the memory layout of
Cell
-
Use
partial_cmp
to implement tuplelt
/le
/ge
/gt
-
Stabilize
atomic_as_ptr
-
Stabilize
nonnull_slice_from_raw_parts
-
Partial stabilization of
once_cell
-
Stabilize
nonzero_min_max
- Flatten/inline format_args!() and (string and int) literal arguments into format_args!()
- Stabilize movbe target feature
- don't splice from files into pipes in io::copy
-
Add a builtin unstable
FnPtr
trait that is implemented for all function pointers This extendsDebug
,Pointer
,Hash
,PartialEq
,Eq
,PartialOrd
, andOrd
implementations for function pointers with all ABIs.
Stabilized APIs
-
NonZero*::MIN/MAX
-
BinaryHeap::retain
-
Default for std::collections::binary_heap::IntoIter
-
Default for std::collections::btree_map::{IntoIter, Iter, IterMut}
-
Default for std::collections::btree_map::{IntoKeys, Keys}
-
Default for std::collections::btree_map::{IntoValues, Values}
-
Default for std::collections::btree_map::Range
-
Default for std::collections::btree_set::{IntoIter, Iter}
-
Default for std::collections::btree_set::Range
-
Default for std::collections::linked_list::{IntoIter, Iter, IterMut}
-
Default for std::vec::IntoIter
-
Default for std::iter::Chain
-
Default for std::iter::Cloned
-
Default for std::iter::Copied
-
Default for std::iter::Enumerate
-
Default for std::iter::Flatten
-
Default for std::iter::Fuse
-
Default for std::iter::Rev
-
Default for std::slice::Iter
-
Default for std::slice::IterMut
-
Rc::into_inner
-
Arc::into_inner
-
std::cell::OnceCell
-
Option::is_some_and
-
NonNull::slice_from_raw_parts
-
Result::is_ok_and
-
Result::is_err_and
-
std::sync::atomic::Atomic*::as_ptr
-
std::io::IsTerminal
-
std::os::linux::net::SocketAddrExt
-
std::os::unix::net::UnixDatagram::bind_addr
-
std::os::unix::net::UnixDatagram::connect_addr
-
std::os::unix::net::UnixDatagram::send_to_addr
-
std::os::unix::net::UnixListener::bind_addr
-
std::path::Path::as_mut_os_str
-
std::sync::OnceLock
Cargo
-
Add
CARGO_PKG_README
-
Make
sparse
the default protocol for crates.io - Accurately show status when downgrading dependencies
- Use registry.default for login/logout
-
Stabilize
cargo logout
Misc
Compatibility Notes
-
Prevent stable
libtest
from supporting-Zunstable-options
-
Perform const and unsafe checking for expressions in
let _ = expr
position. -
WebAssembly targets enable
sign-ext
andmutable-globals
features in codegen This may cause incompatibility with older execution environments. - Insert alignment checks for pointer dereferences as debug assertions 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.