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。这意味着包含诸如 tvm和tvm 等工具的目标平台可以保证构建成功,但不能保证通过我们的自动化测试套件。rustc``cargo
对于用户而言,此变更不会立即产生影响。rustup在目标平台仍处于 Tier 2 级别期间,Rust 项目仍将分发标准库和编译器的构建版本,供用户通过其他安装方式使用。随着时间的推移,该目标平台的测试覆盖率降低可能会导致一些问题或兼容性下降,届时将不会另行通知。
稳定的API
u{n}::checked_sub_signedu{n}::overflowing_sub_signedu{n}::saturating_sub_signedu{n}::wrapping_sub_signedimpl Copy for IntErrorKindimpl Hash for IntErrorKindimpl PartialEq<&CStr> for CStrimpl PartialEq<CString> for CStrimpl PartialEq<Cow<CStr>> for CStrimpl PartialEq<&CStr> for CStringimpl PartialEq<CStr> for CStringimpl PartialEq<Cow<CStr>> for CStringimpl PartialEq<&CStr> for Cow<CStr>impl PartialEq<CStr> for Cow<CStr>impl PartialEq<CString> for Cow<CStr>
这些先前稳定的 API 现在在 const 上下文中也保持稳定:
<[T]>::reversef32::floorf32::ceilf32::truncf32::fractf32::roundf32::round_ties_evenf64::floorf64::ceilf64::truncf64::fractf64::roundf64::round_ties_even
平台支持
x86_64-apple-darwin现在是一个二级目标
有关 Rust 分级平台支持的更多信息,请参阅 Rust 的平台支持页面。
其他变化
1.90.0 版本的贡献者
Rust 1.90.0 的开发离不开许多人的共同努力。没有你们,我们不可能完成这项工作。谢谢!