Rust : 新版本 1.90.0

原文

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

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

ruby 复制代码
$ rustup update stable

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

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

1.90.0 稳定版包含哪些内容?

LLD现在是默认链接器x86_64-unknown-linux-gnu

目标平台x86_64-unknown-linux-gnu现在默认使用 LLD 链接器来链接 Rust crate。与默认的 Linux 链接器 (BFD) 相比,这应该会提升链接性能,尤其是在处理大型二进制文件、包含大量调试信息的二进制文件以及增量重建时。

在绝大多数情况下,LLD 应该向后兼容 BFD,除了编译时间缩短之外,您应该不会感觉到任何其他区别。但是,如果您确实遇到了任何新的链接器问题,您可以随时使用-C linker-features=-lld编译器标志来选择禁用 LLD。您可以将其添加到常规RUSTFLAGS环境变量中,或者添加到项目的.cargo/config.toml配置文件中,如下所示:

ini 复制代码
[target.x86_64-unknown-linux-gnu]
rustflags = ["-Clinker-features=-lld"]

如果您在使用 LLD 链接器时遇到任何问题,请告知我们。您可以点击此处阅读更多关于切换到 LLD、一些基准测试数据以及退出机制的信息。

Cargo 为工作区发布添加了原生支持

cargo publish --workspace现在支持自动按正确的顺序发布工作区中的所有 crate(遵循它们之间的任何依赖关系)。

长期以来,通过外部工具或手动订购单个发布内容都可以实现这一点,但此举将此功能引入了 Cargo 本身。

原生集成允许 Cargo 的发布验证功能对所有待发布的 crate 运行构建,如同它们已经发布一样,包括在试运行期间。请注意,发布操作仍然不是原子性的------网络错误或服务器端故障仍然可能导致工作区部分发布。

使用主机工具降级x86_64-apple-darwin到二级

GitHub 即将停止为公共代码库提供免费的 macOS x86_64 运行器。苹果公司也已宣布计划停止对 x86_64 架构的支持。

根据这些变更,从 Rust 1.90 版本开始,我们将目标平台包含宿主工具的 Tier 1降级x86_64-apple-darwin包含宿主工具的 Tier 2。这意味着包含诸如 tvmtvm 等工具的目标平台可以保证构建成功,但不能保证通过我们的自动化测试套件。rustc``cargo

对于用户而言,此变更不会立即产生影响。rustup在目标平台仍处于 Tier 2 级别期间,Rust 项目仍将分发标准库和编译器的构建版本,供用户通过其他安装方式使用。随着时间的推移,该目标平台的测试覆盖率降低可能会导致一些问题或兼容性下降,届时将不会另行通知。

稳定的API

这些先前稳定的 API 现在在 const 上下文中也保持稳定:

平台支持

  • x86_64-apple-darwin现在是一个二级目标

有关 Rust 分级平台支持的更多信息,请参阅 Rust 的平台支持页面。

其他变化

来看看RustCargoClippy中发生了哪些变化。

1.90.0 版本的贡献者

Rust 1.90.0 的开发离不开许多人的共同努力。没有你们,我们不可能完成这项工作。谢谢!

相关推荐
CNRio7 小时前
GitCode CLI:从Python到Rust的重构之旅
python·rust·gitcode
xcLeigh7 小时前
【新】Rust入门:基础语法应用
开发语言·算法·rust
星释7 小时前
Rust 练习册 103:维吉尼亚密码与安全通信
网络·安全·rust
美味小鱼8 小时前
DupFinder:一个用 Rust 编写的高性能重复文件查找工具
开发语言·后端·rust
Source.Liu8 小时前
【Chrono库】 时区转换规则(TransitionRule)实现详解(src/offset/local/tz_info/rule.rs)
rust·time
星释16 小时前
Rust 练习册 100:音乐音阶生成器
开发语言·后端·rust
木易 士心1 天前
Go、Rust、Kotlin、Python 与 Java 从性能到生态,全面解读五大主流编程语言
java·golang·rust
badmonster01 天前
AI ETL需要不同的原语:从构建CocoIndex中学到的Rust经验🦀
rust·aigc
Source.Liu1 天前
【Chrono库】Chrono 本地时区模块解析(src/offset/local/mod.rs)
rust·time
干饭比赛第一名获得者1 天前
🚀 终极指南:Mac M4 编译 Rust 至 Linux (AMD64)
后端·rust