2023-01-25
本文由 ChatGPT(gpt-3.5-turbo-1106) 翻译。
你好,欢迎阅读本期的 本周 Rust 速递!
Rust 是一种赋予每个人构建可靠高效软件能力的编程语言。 这是我们对 Rust 进展和社区情况的每周汇总。 希望有什么内容被提及?在 Twitter 上给我们打标签 @ThisWeekInRust 或者在 mastodon.social 上给我们打标签 @ThisWeekinRust,或者给我们提交 pull request。 想参与其中?我们欢迎贡献。
本周 Rust 速递 是在 GitHub 上开发的。 如果你发现本周速递中有任何错误,请提交 PR。
toml vs toml_edit本周的 crate 是 Darkbird,这是一个受 mnesia 启发的高并发、实时、内存存储库。
感谢 DanyalMh 自荐!
一直想要为开源项目做贡献,但不知道从哪里开始吗? 每周我们会为你挑选一些 Rust 社区的任务,让你可以选择并开始参与!
如果你是 Rust 项目的所有者,正在寻找贡献者,请在 这里 提交任务。
上周有 378 个拉取请求被合并
noundefTypeId 排序实现变为常量 s@self::{macro}@::macro 更改为 s::{macro}@::macro_来打印出常量泛型参数CastError::NeedsDeref 创建一个 MachineApplicable 建议impl &Trait 上产生的错误更友好derive(Debug) 输出select_nth_unstable 中添加堆排序回退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 中的建议,当源类型是 borrow 时config.serverPath 中替换 vscode 变量const_closures 语法2023年1月25日至2023年2月22日之间的 Rusty 活动 🦀
如果你正在举办一个 Rust 活动,请将其添加到[日历]中以便在这里提及。请记得同时添加一个活动链接。发送电子邮件至 Rust 社区团队 以获得权限。
请查看最新的 r/rust 招聘帖子
Rust 已经证明了,即使在命令式语言中,你可以使用类型系统作为分离逻辑的载体,这并不像那些不可变的函数式前辈所建议的那样神秘。它通过确保语言定义了一个能够帮助你的类型系统,以及确保了其核心属性的健全性可以在其中表达来实现这一点。
- 内存访问的健全性要求:生命周期
- 带有值语义的引用的健全性要求:
&/&mut _- 资源的健全性要求:
Copy和Drop- 确保你的逻辑是单调的:特质而不是继承,缺乏特化(是的,这是一个特性)。
- (明显缺失:没有依赖类型;显然不是‘必要的’,但我确信它可能会有用;然而,研究正在积极进行;谨慎是好的)
这使得标准库可以将其所有相关要求编码为类型。并且在各处做到这一点是其健全性属性:安全函数除了其参数类型的总和之外没有要求,而
unsafe函数可以。没有任何新的或特别的东西,没有使 Rust 的健全性概念特别的东西。基于分离逻辑的数学推理使得健全性审查变得局部而不需要整个程序的分析。这就是它变得实际的原因。它做得相当成功和有原则,但它没有做出真正革命性的事情。它是过去十年类型系统研究的好部分的总和。这可能就是人们为什么称之为‘健全性定义’的原因,这只是一种非常有力的方式来表达:“我们了解到一个实际的类型系统可以作为证明检查器”。
感谢 Stephan Sokolow 的建议!
本周 Rust 摘要由: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez 编辑。
电子邮件列表托管由 Rust 基金会 赞助。