宣布 Rustup 1.23.0

2020 年 11 月 27 日 · Rustup 工作组

Rustup 工作组很高兴宣布发布 rustup 1.23.0 版本。Rustup 是安装 Rust 的推荐工具。Rust 是一种赋能所有人构建可靠且高效软件的编程语言。

如果你已经安装了之前版本的 rustup,获取 rustup 1.23.0 就像关闭你的 IDE 并运行以下命令一样简单:

rustup self update

Rustup 在正常的工具链更新结束时也会自动更新自己。

rustup update

如果你还没有安装,可以从我们网站上的相应页面获取 rustup

rustup 1.23.0 有哪些新特性

支持 Apple M1 设备

Rustup 现在原生支持新的 Apple M1 设备,允许你像在其他平台上一样在新的 Mac 上安装它!

请注意,在撰写此博客文章时,aarch64-apple-darwin 编译器处于 Tier 2 目标级别:从 Rust 1.49(当前处于 beta 通道)开始提供预编译二进制文件,但没有在其上执行自动化测试。

你可以关注问题 #73908,以跟踪将 Apple Silicon 支持提升到 Tier 1 所需的工作。

支持安装次要版本

Rust 团队每六周发布一个新版本,定期带来新特性和 bug 修复。有时稳定的发布版本中会引入回归问题,团队会发布一个包含该问题修复的“点版本”。例如,1.45.11.45.2Rust 1.45.0 的点版本,而 1.46.01.47.0 都没有点版本。

使用 rustup 1.22.1 或更早版本,如果你想使用稳定版本,可以安装 stable(它会自动更新到最新版本)或特定的版本号,例如 1.48.01.45.01.45.2。从 rustup 的这个版本(1.23.0)开始,你也可以安装不指定修订版本号的次要版本,例如 1.481.45。这些“虚拟”版本将始终指向该周期中最新的修订版本,因此 rustup toolchain install 1.45 将会获取 1.45.2 工具链。

rust-toolchain 文件的新格式

rustup 1.5.0 版本引入了 rust-toolchain 文件,允许你为项目选择默认工具链。当文件存在时,rustup 会确保文件中指定的工具链安装在本地系统上,并在调用 rustccargo 时使用该版本。

$ cat rust-toolchain
nightly-2020-07-10
$ cargo --version
cargo 1.46.0-nightly (fede83ccf 2020-07-02)

该文件非常适合想要使用特定 nightly 版本的项目,但不允许添加额外的组件(例如 clippy)或编译目标。Rustup 1.23.0 引入了一种新的、可选的 TOML 语法用于此文件,支持指定组件和目标。

[toolchain]
channel = "nightly-2020-07-10"
components = ["rustfmt", "clippy"]
targets = ["wasm32-unknown-unknown"]

新语法不会取代旧语法,两者都将继续工作。你可以在rustup 书籍的“覆盖”章节中了解有关覆盖默认工具链的更多信息。

其他变更

rustup 1.23.0 中还有更多变更:请在变更日志中查看!从这个版本开始,rustup 的文档也已在rustup 书籍中提供。

感谢

感谢所有为 rustup 1.23.0 做出贡献的贡献者!

  • Aaron Loucks
  • Aleksey Kladov
  • Aurelia Dolo
  • Camelid
  • Chansuke
  • Carol (Nichols || Goulding)
  • Daniel Silverstone
  • Dany Marcoux
  • Eduard Miller
  • Eduardo Broto
  • Eric Huss
  • Francesco Zardi
  • FR Bimo
  • Ivan Nejgebauer
  • Ivan Tham
  • Jake Goulding
  • Jens Reidel
  • Joshua M. Clulow
  • Jynn Nelson
  • Jubilee Young
  • Leigh McCulloch
  • Lzu Tao
  • Matthias Krüger
  • Matt Kraai
  • Matt McKay
  • Nick Ashley
  • Pascal Hertleif
  • Paul Lange
  • Pietro Albini
  • Robert Collins
  • Stephen Muss
  • Tom Eccles