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

相关推荐
明月看潮生2 分钟前
青少年编程与数学 02-019 Rust 编程基础 10课题、函数、闭包和迭代器
开发语言·青少年编程·rust·编程与数学
明月看潮生6 分钟前
青少年编程与数学 02-019 Rust 编程基础 09课题、流程控制
开发语言·算法·青少年编程·rust·编程与数学
一丝晨光6 小时前
数值溢出保护?数值溢出应该是多少?Swift如何让整数计算溢出不抛出异常?类型最大值和最小值?
java·javascript·c++·rust·go·c·swift
景天科技苑6 小时前
【Rust泛型】Rust泛型使用详解与应用场景
开发语言·后端·rust·泛型·rust泛型
zhuziheniaoer7 小时前
rust-candle学习笔记11-实现一个简单的自注意力
笔记·学习·自然语言处理·rust
明月看潮生1 天前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
天天打码1 天前
Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
开发语言·前端·javascript·rust·开源
姜 萌@cnblogs1 天前
开源我的一款自用AI阅读器,引流Web前端、Rust、Tauri、AI应用开发
rust·web·tauri·svelte
明月看潮生2 天前
青少年编程与数学 02-019 Rust 编程基础 05课题、复合数据类型
开发语言·青少年编程·rust·编程与数学
Uncomfortableskiy2 天前
Rust 官方文档:人话版翻译指南
开发语言·rust