Rust 1.85.0 及 Rust 2024 发布
Rust 1.85.0 稳定版主要更新内容
- Rust 2024 版:Rust 2024 版正式稳定发布,它带来多项语言、标准库、Cargo、Rustdoc 和 Rustfmt 的更新,如改变 RPIT 生命周期捕获规则、调整临时变量作用域、增加
Future
和IntoFuture
到标准库 prelude 等。用户可参考版本指南进行迁移,部分更改可使用cargo fix
自动完成。 - 异步闭包:Rust 现在支持异步闭包
async || {}
,调用时返回futures
,标准库 prelude 中新增AsyncFn
、AsyncFnMut
和AsyncFnOnce
三个类似的 trait,解决了之前无法让内部异步块借用闭包捕获值和用Fn
traits 正确表达高阶函数签名返回Future
的问题。 - 隐藏 trait 实现诊断信息:新增
#[diagnostic::do_not_recommend]
属性,可让编译器在诊断消息中不显示注解的 trait 实现,避免给库作者提供无用或误导性的建议。 - 元组的
FromIterator
和Extend
:现在这些特性扩展到了更多长度的元组,从单元素(T,)
到 12 个元素(T1, T2, .., T11, T12)
,可使用collect()
同时将迭代器数据分散到多个集合中。 std::env::home_dir()
更新:该函数多年来一直被弃用,因其在某些 Windows 配置下表现异常。现在更新其行为作为 bug 修复,后续版本将移除弃用状态。- 稳定的 API:多个 API 达到稳定状态,部分 API 在常量上下文中也稳定可用。
原文地址:https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
Linus Torvalds 回复 Christoph Hellwig 的邮件
最近,Linux 社区围绕 Linux 内核中 Rust 代码使用政策的争议展开了激烈的讨论,其核心在于维护者对代码使用的控制权问题。
Linus 在回复中指出:Christoph Hellwig 所反对的 PR 并未触及 DMA 层,只是在其他子目录使用相关代码,未对其维护的代码造成任何改动。他批评 Christoph Hellwig 抱怨新用户使用代码,还提出不合理的论据,强调其行为类似宣称作为 DMA 维护者就要控制代码的使用方式。Linus 说:维护者负责管理代码本身,但无权决定谁使用代码以及如何使用。对于 Rust 代码,如果维护者不想接触,可以选择忽视,但同时也不应干涉 Rust 代码使用其所维护的 C 接口。
但是同时,也给出了“保护墙”的概念:对于不想处理 Rust 问题的 C 开发者,有相应的保护机制;反之,不想处理 Rust 代码的维护者也不应在 Rust 代码相关事务上拥有话语权。而且,实际情况是多样的、复杂的,而不是非黑即白的选择。子系统维护者对于 Rust 绑定代码的参与程度可能各不相同,并非一定要完全参与或完全不参与。
原文地址:https://lore.kernel.org/rust-for-linux/CAHk-=wgLbz1Bm8QhmJ4dJGSmTuV5w_R0Gwvg5kHrYr4Ko9dUHQ@mail.gmail.com/
轻松一刻:Rust 之歌
一位有趣的 Rust 开发者给 Rust 2024 写了一首歌,工作累了来听听吧。
直接听歌:https://www.youtube.com/watch?v=thdpaw_3VTw https://youtu.be/thdpaw_3VTw
原文地址:https://smallcultfollowing.com/babysteps/blog/2025/02/20/rust-2024-is-coming
--
From 日报小组 Yuan YQ
社区学习交流平台订阅:
评论区
写评论Rust for Linux 最近这事闹挺大的
Phoronix 上相关帖子的讨论热度非常高
但我觉得遗憾的是 Linus Torvalds 的这份声明可能有点太迟了
如果 Linus 能在 Hector 和 Christoph 的冲突升级之前早点介入的话,事情可能也不会到现在这个地步