Rust 1.75.0 发布

2023年 12月 30日 70.3k 0

Rust 1.75.0 稳定版已正式发布,主要带来以下变化:

traits 中的async fn 和 return-position impl Trait

Rust 1.75 支持在 Trait 中使用async fn-> impl Trait。但是,此初始版本存在公告帖子中描述的一些限制。

预计这些限制将在未来的版本中取消。

指针字节偏移 API

原始指针(*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

rustc 的代码布局优化

Rust 编译器的运行速度继续加快,此次发布的二进制版本采用了 BOLT 技术,使基准测试平均运行时间提高了 2%。该工具优化了包含大部分 rustc 代码的 librustc_driver.so 库的布局,从而提高了缓存利用率。

现在还在使用 -Ccodegen-units=1 构建 rustc,为在 LLVM 中进行优化提供了更多机会。这一优化为基准测试带来了 1.5% 的平均运行时间平均提升。

在此版本中,这些优化仅限于 x86_64-unknown-linux-gnu 编译器。项目团队计划随着时间的推移将其扩展到更多平台。

稳定的 API

  • 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 现在在 const contexts 中是稳定的:

  • Ipv6Addr::to_ipv4_mapped
  • MaybeUninit::assume_init_read
  • MaybeUninit::zeroed
  • mem::discriminant
  • mem::zeroed

其他变化

查看 Rust、Cargo 和 Clippy 中发生的所有变化。

详情可查看官方公告。

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论