2023-01-25
本文由 ChatGPT(gpt-3.5-turbo-1106) 翻譯。
你好,歡迎來到另一期的 This Week in Rust! Rust 是一种能让每个人都能构建可靠高效软件的编程语言。这是对其进展和社区的每周总结。希望有什么内容想提及?在 Twitter 上标记我们 @ThisWeekInRust,或在 mastodon.social 上标记 @ThisWeekinRust,或者通过 提交 pull request 联系我们。想参与其中吗?我们欢迎贡献。
This Week in Rust 是在 GitHub 上公开开发的。如果你发现本周期的错误,请提交 PR。
toml vs toml_edit本周推荐的 crate 是 Darkbird,一个受 Mnesia 启发的高并发、实时、内存存储库。
感谢 DanyalMh 自荐这个 crate!
一直想要貢獻於開源項目,卻不知道從何開始嗎?每週我們都會突顯 Rust 社群中的一些任務,讓您可以選擇並開始參與!
如果您是一位 Rust 項目所有者,並正在尋找貢獻者,請在此處提交任務。
rust 项目更新摘要
上周有378个拉取请求被合并
noundefTypeId的排序實現常量化 s@self::{macro}@::macro 更改為導出_來打印出常量泛型參數CastError::NeedsDeref 創建 MachineApplicable 的建議impl &Trait 上產生的錯誤更加友好derive(Debug) 輸出select_nth_unstable中添加 heapsort 回退Option<$NUM>类型实现alloc::vec::IsZerostrict_provenance指针方法中解除T: Sized限制Arc而添加Arc::into_inner,在不调用内部类型析构函数的情况下Vacant和Occupied条目提供默认哈希器类型Either::as_pin_mut和Either::as_pin_refReadyChunks中的所有流实现FusedStreammultiple_unsafe_ops_per_block lintbool_assert_comparison 添加适用于机器的建议unnecessary_safety_comment 中的误报transmutes_expressible_as_ptr_casts 中修复建议config.serverPath 中替换 vscode 变量const_closures 语法2023年01月25日至2023年02月22日之間的 Rusty 活動 🦀
如果你正在举办 Rust 活动,请将其添加到日历中,以便在此处提及。请记得添加活动链接。请通过电子邮件联系Rust 社区团队获取访问权限。
请查看最新的r/rust Who's Hiring帖子
Rust 已经证明了,即使是在命令式语言中,你可以将类型系统作为分离逻辑的载体,而且它并不像那些不可变的函数式前辈所暗示的那样神秘。它通过确保语言定义了一个有助于你的类型系统,确保了soundness的核心属性可以在其中表达。
- 内存访问的soundness需求:生命周期
- 具有值语义的引用的soundness需求:
&/&mut _- 资源的soundness需求:
Copy和Drop- 确保你的逻辑是单调的:特质取代继承,不支持特化(是的,这是一个特性)。
- (值得注意的缺失:没有依赖类型;显然不是“必需的”,但我相信它可能是有用的;然而,相关研究正在进行得如火如荼;谨慎是好的)
这使得标准库能够将其所有相关需求都编码为类型。并且在所有地方都这样做就是它的soundness属性:安全的函数在参数类型之和之外没有要求,
unsafe函数则会有要求。没有什么新鲜或特别的,也没有什么使 Rust 的soundness概念特别的东西。将你的数学推理建立在分离逻辑上使soundness审查成为局部而不是需要整个程序分析。这就是使它实用的原因。它做得相当成功和原则性,但并没有做出真正革命性的事情。它是过去十年类型系统研究中的一部分优秀成果的总和。这可能是人们称它为“soundness定义”的原因,这只是一种非常有深意的说法:“我们了解到,一个实用的类型系统可以作为证明检查器”。
感谢 Stephan Sokolow 的建议!
本周 Rust 新闻由 nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez 编辑。
电子邮件列表由 Rust 基金会 赞助托管