通告: Rust 1.75.0

原文链接

Rust团队很高兴地宣布Rust的新版本1.75.0的发布。Rust是一种赋能每个人构建可靠和高效软件的编程语言。

如果你已经通过rustup安装了Rust的旧版本,你可以使用以下命令获取1.75.0版本:

sql 复制代码
rustup update stable

如果你还没有安装rustup,你可以从我们网站上的相应页面获取rustup,并查看1.75.0的详细发布说明。

如果你想帮助我们测试未来的版本,你可能会考虑本地更新到beta频道(rustup default beta)或夜间频道(rustup default nightly)。请报告你可能遇到的任何bug!

1.75.0稳定版中的内容:

async fn和trait中的返回位置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上下文中稳定:

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

其他变化

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

对1.75.0的贡献者

很多人共同参与了Rust 1.75.0的创建。没有你们所有人的帮助,我们无法完成它。谢谢!

相关推荐
LengineerC6 小时前
Rust仿node事件总线的简单实现
设计模式·rust
r***d8657 小时前
Rust宏编程指南
开发语言·后端·rust
星释7 小时前
Rust 练习册 80:Grains与位运算
大数据·算法·rust
wei_shuo9 小时前
zoxide 开源鸿蒙 PC 生态适配实战:Rust 交叉编译与 HNP 打包完整指南
rust·开源鸿蒙·zoxide
大鱼七成饱21 小时前
Rust进阶必备:thiserror用法全面解析
rust
Amos_Web1 天前
Rust实战(四):数据持久化、告警配置与Web API —— 构建监控系统的功能闭环
前端·后端·rust
联系QQ:4877392781 天前
Bayes-CNN-LSTM、Bayes-CNN-BiLSTM、Bayes-CNN-GRU、B...
rust
空白诗1 天前
tokei 在鸿蒙PC上的构建与适配
后端·华为·rust·harmonyos
疏狂难除1 天前
尝试rust与python的混合编程(一)
开发语言·后端·python·rust
H***99762 天前
Rust在WebAssembly中的使用
开发语言·rust·wasm