Rust 资讯:Rust 1.75.0 正式版发布,支持在`trait`中使用`async fn`

Rust 团队日前发布了 Rust 的新版本 ------ 1.75.0 正式版,Rust 是一种强大的编程语言,使开发者能够构建可靠、高效的软件。这个新版本带来了几个重要的功能和改进。

关于 1.75.0 有关新特性可查看:blog.rust-lang.org/2023/12/28/...

如果已经安装了以前版本的 Rust,可以通过以下命令升级到 1.75.0 版本:

$ rustup update stable

如果还没有安装,可以从网站上的相应页面获取rustup,并查看1.75.0 的详细发行说明。 也可以在 GitHub 上查看1.75.0 的发行日志(github.com/rust-lang/r...%25E3%2580%2582 "https://github.com/rust-lang/rust/releases/tag/1.75.0)%E3%80%82")

如果想使用测试未来版本,可以考虑在本地进行更新以使用** beta 版本** ( rustup default beta) 或 nightly 版本 ( rustup default nightly),这两个版本不太稳定,使用过程中可能遇到错误,如果遇到任何错误,可以发送报告

1.75.0 稳定版中有什么

支持在trait中使用async fnreturn-position impl Trait

Rust 团队之前宣布过将支持在 traits 中使用 async fn-> impl Trait,这项重大更新终于在Rust 1.75 正式版中稳定下来。不过,这个初始版本带有一些使用限制,这些限制在公告帖子(blog.rust-lang.org/2023/12/21/...) 中有详细描述。这些限制预计将在未来的版本中解除。

trait中使用async fnreturn-position impl Trait这一特性增加了 Rust 的灵活性和表达能力,使得在trait中定义异步方法和返回具体类型的函数变得更加方便。这项更新对于异步编程非常有用,让开发者能够更好地组织和复用代码。虽然初始版本有一些限制,但这一功能的引入进一步提升了 Rust 作为现代编程语言的优势,使得异步编程更加简洁和灵活。

指针字节偏移 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 现在在常量上下文中已经稳定:

其他变化

了解更多有关RustCargoClippy中所有变化的详细信息,请参阅完整的发布说明 (github.com/rust-lang/r...)

(可查看1.75.0更新的详细列表)

致敬贡献者

许多人齐心协力创建了 Rust 1.75.0。谢谢所有人!(thanks.rust-lang.org/rust/1.75.0)

(注:从光贡献者就有328人来看,本版本变化还是蛮大的)

官方资料

关于1.75.0 升级的更多信息,可以查阅:

相关推荐
本地化文档5 小时前
rustdoc-book-l10n
rust·github·gitcode
Tony Bai8 小时前
Rust 看了流泪,AI 看了沉默:扒开 Go 泛型最让你抓狂的“残疾”类型推断
开发语言·人工智能·后端·golang·rust
jump_jump10 小时前
RTK:给 AI 编码助手瘦身的 Rust 代理
性能优化·rust·claude
小杍随笔15 小时前
【Rust Exercism 练习详解:Anagram + Space Age + Sublist(附完整代码与深度解读)】
开发语言·rust·c#
Rust研习社16 小时前
Rust 字符串与切片实战
rust
朝阳58116 小时前
局域网聊天工具
javascript·rust
朝阳58117 小时前
我做了一个局域网传文件的小工具,记录一下
javascript·rust
Rust语言中文社区1 天前
【Rust日报】用 Rust 重写的 Turso 是一个更好的 SQLite 吗?
开发语言·数据库·后端·rust·sqlite
小杍随笔2 天前
【Rust 半小时速成(2024 Edition 更新版)】
开发语言·后端·rust
Source.Liu2 天前
【office2pdf】office2pdf 纯 Rust 实现的 Office 转 PDF 库
rust·pdf·office2pdf