Rust 1.75.0 版本发布公告

2023 年 12 月 28 日 · Rust 发布团队

Rust 团队很高兴地宣布 Rust 的新版本 1.75.0 发布。Rust 是一种编程语言,旨在赋能所有人构建可靠且高效的软件。

如果您之前通过 rustup 安装了 Rust,则可以使用以下命令获取 1.75.0 版本:

$ rustup update stable

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

如果您想通过测试未来的版本来帮助我们,您可以考虑在本地更新以使用 beta 频道 (rustup default beta) 或 nightly 频道 (rustup default nightly)。请报告您可能遇到的任何错误!

1.75.0 稳定版的新特性

traits 中的 async fn 和返回位置 impl Trait

正如上周宣布的那样,Rust 1.75 支持在 traits 中使用 async fn-> impl Trait。但是,此初始版本带有一些限制,这些限制在公告帖子中进行了描述。

预计这些限制将在未来的版本中解除。

指针字节偏移 API

原始指针 (*const T*mut T) 过去主要支持以 T 为单位进行操作。例如,<*const T>::add(1) 会将 size_of::<T>() 字节添加到指针的地址。在某些情况下,使用字节偏移更方便,这些新的 API 避免了调用者首先转换为 *const u8/*mut u8 的需要。

rustc 的代码布局优化

Rust 编译器持续变得更快,此版本包括将 BOLT 应用于我们的二进制版本,在我们的基准测试中带来了 2% 的平均实际运行时间改进。此工具优化了包含大部分 rustc 代码的 librustc_driver.so 库的布局,从而实现了更好的缓存利用率。

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

在此版本中,这些优化仅限于 x86_64-unknown-linux-gnu 编译器,但我们希望随着时间的推移将其扩展到更多平台。

稳定的 API

这些 API 现在在 const 上下文中是稳定的

其他变更

查看 RustCargoClippy 中更改的所有内容。

1.75.0 版本贡献者

许多人齐心协力创建了 Rust 1.75.0。没有你们所有人,我们不可能做到。谢谢!