Rust 1.67.0 发布

2023 年 1 月 26 日 · Rust 发布团队

Rust 团队很高兴地宣布 Rust 的新版本 1.67.0。 Rust 是一种编程语言,它使每个人都能构建可靠且高效的软件。

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

$ rustup update stable

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

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

1.67.0 稳定版中的内容

#[must_use]async fn 生效

使用 #[must_use] 注释的 async 函数现在将该属性应用于返回的 impl Future 的输出。 Future trait 本身已经用 #[must_use] 注释,因此所有实现 Future 的类型都是自动的 #[must_use],这意味着以前无法指示 Future 的输出本身是重要的,应该以某种方式使用。

在 1.67 版本中,如果输出没有以某种方式使用,编译器现在会发出警告。

#[must_use]
async fn bar() -> u32 { 0 }

async fn caller() {
    bar().await;
}
warning: unused output of future returned by `bar` that must be used
 --> src/lib.rs:5:5
  |
5 |     bar().await;
  |     ^^^^^^^^^^^
  |
  = note: `#[warn(unused_must_use)]` on by default

std::sync::mpsc 实现更新

自 1.0 版本之前,Rust 的标准库就有一个多生产者、单消费者通道,但在此版本中,实现已切换为基于 crossbeam-channel。 此版本不包含 API 更改,但新的实现修复了许多错误,并提高了实现的性能和可维护性。

在此版本中,用户不应注意到行为有任何重大变化。

稳定的 API

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

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

1.67.0 的贡献者

许多人齐心协力创建了 Rust 1.67.0。 没有你们大家,我们无法做到这一点。谢谢!