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

相关推荐
姜学迁7 小时前
Rust-枚举
开发语言·后端·rust
凌云行者7 小时前
rust的迭代器方法——collect
开发语言·rust
QMCY_jason14 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
碳苯18 小时前
【rCore OS 开源操作系统】Rust 枚举与模式匹配
开发语言·人工智能·后端·rust·操作系统·os
zaim120 小时前
计算机的错误计算(一百一十四)
java·c++·python·rust·go·c·多项式
凌云行者1 天前
使用rust写一个Web服务器——单线程版本
服务器·前端·rust
cyz1410011 天前
vue3+vite@4+ts+elementplus创建项目详解
开发语言·后端·rust
超人不怕冷1 天前
[rust]多线程通信之通道
rust
逢生博客1 天前
Rust 语言开发 ESP32C3 并在 Wokwi 电子模拟器上运行(esp-hal 非标准库、LCD1602、I2C)
开发语言·后端·嵌入式硬件·rust
Maer091 天前
WSL (Linux)配置 Rust 开发调试环境
linux·运维·rust