Products
GG网络技术分享 2025-03-18 16:16 0
Rust 1.75.0 稳定版已正式发布,主要带来以下变化:
Rust 1.75 支持在 Trait 中使用 async fn 和 -> impl Trait。但是,此初始版本存在公告帖子中描述的一些限制。
预计这些限制将在未来的版本中取消。
原始指针(*const T 和 *mut T)主要用于支持以 T 为单位的操作。例如,<*const T>::add(1) 将size_of::<T>() 字节添加到指针的地址。在某些情况下,使用字节偏移量更方便,并且这些新 API 避免了要求调用者首先强制转换为 *const u8/*mut u8。
pointer::byte_add
pointer::byte_offset
pointer::byte_offset_from
pointer::byte_sub
pointer::wrapping_byte_add
pointer::wrapping_byte_offset
pointer::wrapping_byte_sub
Rust 编译器的运行速度继续加快,此次发布的二进制版本采用了 BOLT 技术,使基准测试平均运行时间提高了 2%。该工具优化了包含大部分 rustc 代码的 librustc_driver.so 库的布局,从而提高了缓存利用率。
现在还在使用 -Ccodegen-units=1 构建 rustc,为在 LLVM 中进行优化提供了更多机会。这一优化为基准测试带来了 1.5% 的平均运行时间平均提升。
在此版本中,这些优化仅限于 x86_64-unknown-linux-gnu 编译器。项目团队计划随着时间的推移将其扩展到更多平台。
Atomic*::from_ptr
FileTimes
FileTimesExt
File::set_modified
File::set_times
IpAddr::to_canonical
Ipv6Addr::to_canonical
Option::as_slice
Option::as_mut_slice
pointer::byte_add
pointer::byte_offset
pointer::byte_offset_from
pointer::byte_sub
pointer::wrapping_byte_add
pointer::wrapping_byte_offset
pointer::wrapping_byte_sub
这些 API 现在在 constcontexts中是稳定的:
Ipv6Addr::to_ipv4_mapped
MaybeUninit::assume_init_read
MaybeUninit::zeroed
mem::discriminant
mem::zeroed
查看Rust、Cargo和Clippy中发生的所有变化。
Demand feedback