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 升级的更多信息,可以查阅:

相关推荐
songroom4 小时前
Rust: offset祼指针操作
开发语言·算法·rust
唐 城12 小时前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust
从善若水14 小时前
【2024】Merry Christmas!一起用Rust绘制一颗圣诞树吧
开发语言·后端·rust
gerrylon00714 小时前
rust学习: 有用的命令
rust
brrdg_sefg1 天前
Rust 在前端基建中的使用
前端·rust·状态模式
m0_748230941 天前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
SomeB1oody1 天前
【Rust自学】6.1. 定义枚举
开发语言·后端·rust
SomeB1oody1 天前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
itas1092 天前
Rust调用C动态库
c语言·rust·bindgen·bindings·rust c绑定
SomeB1oody2 天前
【Rust自学】5.1. 定义并实例化struct
开发语言·后端·rust