2023-05-24
本文由 ChatGPT(gpt-3.5-turbo-1106) 翻译。
欢迎阅读《本周 Rust 动态》! Rust 是一种赋予每个人构建可靠和高效软件能力的编程语言。本周动态将对 Rust 语言的进展和社区活动进行每周总结。 希望有什么想要提及的内容?在 Twitter 上给我们打标签 @ThisWeekInRust,或在 mastodon.social 上给我们打标签 @ThisWeekinRust,或者直接给我们提一个 pull request。 想参与其中?我们热爱各种贡献。
《本周 Rust 动态》是在 GitHub 上公开开发的。如果您发现本周动态中有任何错误,请提交一个 PR。
本周的优秀 Crate 是 whichlang,一个快速的无依赖的开源自然语言检测器。
感谢 Brian Kung 的建议!
一直想要为开源项目做贡献,但不知道从哪里开始吗?每周我们都会挑选一些 Rust 社区的任务供您选择并开始参与!
其中一些任务可能会有导师提供帮助,请访问任务页面获取更多信息。
-Bits 派生MockDb 实现 CardsInfoInterfaceMockDb 实现 DisputeInterface如果您是 Rust 项目所有者,并正在寻找贡献者,请在这里提交任务。
上周有 314 个 pull request 被 合并
encode_ty: 不期望的 Param(B/#1)diagnostic: 为 ref impl trait param 添加括号包裹--remote-time 标志到 curl](https://github.com/rust-lang/rust/pull/111771)&mut T到&mut UnsafeCell<T>的转换FileTimes添加创建时间支持core::marker::ConstParamTy 添加派生use Self::.. 的更好诊断Constelaborate_drops中不期望标准化成功offset_of! 中不跳过类型的推断marker_impls 中使用内部宏impl Future 上检查 must_useReErroroffset_of! 中擦除类型的区域match 中的固有投影ConstParamTy 派生的文档注释Arc 构造函数时重复调用 arcinner_layout_for_value_layoutMethodReceiverExpr 且项目为空时发出错误--print=cfg 获取当前目标配置span_bug 的延迟提供更有用的位置&[T] 中时给出更好的错误信息MyTrait + 'a 发出错误时仅保留 traitrustc_middle/src/ty/query.rs 移动到 rustc_middle/src/query/plumbing.rsrustc_interface 中依赖于 CFG_VERSIONFilter 和 FilterMap 的 next_chunk 实现impl<T ?Sized>{drop,forget}_{copy,ref} 的 lint 重命名为更一致的名称rustc_query_impl 中本地数组替换 QueryStructfmt::Arguments 特化 ToString 实现cstr_is_emptynonzero_negation_opsslice_as_chunks 改为常量 (非稳定)slice::sort 合并lints 功能特性-C debuginfominimal_cfg_condition lintSpanlessEq 改进match_wild_err_arm: 不在 const 上下文中进行 lintredundant_pattern_matching: 检查单臂 matchdbg_macro: 不要在任意表达式中移除 dbg!box_default, let_underscore_untyped 中推荐无法命名的类型needless_collect: 在接受 IntoIterator 的方法/函数参数中进行 lintinvalid_regex 无法识别 regex-1.8.0 之后引入的新语法option_if_let_else lint 生成的一些建议let_underscore_untyped 警告integer_arithmeticlookup_impl_assoc_item_for_trait_ref 中考虑 block 实现format_args! 添加更多细节moved-out-of-ref 诊断preorder_expr 跳过 let-else 语句的 else 块macro_use 前导2023年5月24日至2023年6月21日之间的 Rust 相关活动 🦀
如果您正在举办 Rust 活动,请将其添加到[日历]以便在这里提及。请记得添加活动链接。发送电子邮件给 Rust 社区团队 以获取访问权限。
请查看最新的 r/rust 招聘帖子
我认为这种现象最好的例子是共享可变性。程序员们几十年来一直在争论,是共享还是可变性导致了内存安全性bug:
- "是线程!" - JavaScript 和 Python 大喊道,JS 保持单线程,而 Python 引入了全局解释器锁(GIL)。
- "是可变性!" - Haskell 和 Erlang 尖叫道,它们几乎所有都是不可变的。
然后 Rust 出现了,并说: "你们都是傻瓜!只要将它们彼此隔离开,你就能在同一种语言中同时拥有共享和可变性。"
感谢 Jacob Pratt 提供建议!
本周的 Rust 新闻由:nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez编辑。
电子邮件列表由 The Rust Foundation 赞助