2024-01-31
本文由 ChatGPT(gpt-4-1106-preview) 翻译。
您好,欢迎来到本周的 Rust 语言周报! Rust 是一种赋能大家构建可靠和高效软件的编程语言。 这是对其进展和社区动态的每周总结。 想要在周报中提及某些内容?在 Twitter 上向我们标记 @ThisWeekInRust 或在 mastodon.social 上的 @ThisWeekinRust,或者向我们发送请求。 想要参与进来?我们热爱贡献。
Rust 语言周报 是在 GitHub 上公开开发的,归档可以在 this-week-in-rust.org 查看。 如果您在本周的问题中发现任何错误,请提交一个 PR。
本周的 crate 是 Apache Iceberg Rust,这是一个用于巨大分析型数据集的表格格式的 Rust 实现。
感谢 Renjie Liu 自荐这个 crate!
一直想为开源项目做贡献,但不知道从哪里开始吗? 每周我们都会从 Rust 社区中挑选一些任务供你选择,开始你的开源之旅!
这些任务中的一些可能还有导师提供帮助,访问任务页面了解更多信息。
join_path中的一个小错误,以实现更优雅的代码MetaPeerClientRef添加测试,以增强GreptimeDB的稳定性ockam project ticket的输出,信息不再晦涩难懂ockam project ticket和ockam project enroll的输出,并支持--output jsonget_required_value使用OptionExt中的ValidationError如果你是 Rust 项目的所有者,并且正在寻找贡献者,请在这里提交任务。
你是一名新手或有经验的演讲者,正在寻找一个分享酷事物的地方吗?本节突出显示正在计划中的活动,这些活动正在接受投稿,加入他们的活动作为演讲者。
本周没有提交演讲征集通知。
如果你是一名活动组织者,希望扩大活动的影响力,请通过Rust 本周 PR(PR to TWiR)提交链接到提交网站。
上周有 409个拉取请求被合并
pattern_analysis:允许 ctor_sub_tys 返回任何它们想要的迭代器pattern_analysis:重用大部分的 DeconstructedPat Debug 实现#[test] 和 #[bench] 引入的闭包中添加 #[coverage(off)]min_exhaustive_patterns 功能门控LoweredTyfor_scopedyn 的trait提示中出现内部编译错误Instrumentor 并平整跨度细化#[automatically_derived] 函数进行插桩FnOnce 通道时,不要标准化闭包签名:不要在构建 FnOnce shim 时标准化闭包签名visit_ 方法,则不要直接调用 walk_ 函数:如果有相应的 visit_ 方法就不要直接调用 walk_ 函数OPAQUE_HIDDEN_INFERRED_BOUND:在自动分配内存的类型(AFIT)的有大小限制的返回上不触发 OPAQUE_HIDDEN_INFERRED_BOUNDrustc_resolve 中手动解析异步闭包:不要在 rustc_resolve 中手动解析异步闭包..< 时,发出建议:当尝试将独占范围写成 ..< 时发出建议IntoDiagnosticArg 中数字的处理:改善 IntoDiagnosticArg 中数字的处理#![allow_internal_unstable(..)] 能够与 stmt_expr_attributes 一起工作:使 #![allow_internal_unstable(..)] 能够与 stmt_expr_attributes 一起使用NonZero特征GenericArg和Term结构体以使用严格的来源规则is_enabledimpl评估溢出时提供更多上下文destruction_scopesrustc_pattern_analysis 中停止使用 derivativerustc_codegen_cranelift 的子树同步array::from_fnassert_unchecked 代替 assume 内在函数project_downcast:对于无居民变体不要 ICE(内部编译器错误)__cxa_thread_atexit_implintersperse(_with) 的性能HEAP 初始化器永不内联AsyncFn 系列特征(trait)ErrCodeNonZero*::count_ones 方法str::Lines::remainder 方法稳定slice_group_by
这些都是Rust语言的相关代码库最近的一些提交。下面是每个提交的简要中文描述:
切换 NonZero 别名方向 - 修改了Rust语言标准库中的 NonZero 类型别名的使用方式。
regex: 将附加的预过滤器元数据公开 - 在regex库中,将一些之前不公开的元数据公开出来,便于用户使用。
cargo: docs(ref): 尝试改进注册认证文档 - 改进了Rust的包管理器 cargo 的某部分文档,提高了注册认证部分的可理解性。
cargo: fix(cli): 改善与cargo脚本相关的错误信息 - 改进了 cargo 命令行工具中报告脚本错误的方式。
cargo: fix(config): 弃用没有扩展名的文件 - 在配置处理中弃用了没有文件扩展名的行为。
cargo: refactor(shell): 使用新的fancy anstyle API - 在 cargo 的shell交互中使用了新的风格API。
cargo: 文档:将 jobserver 链接的版本替换为 latest - 将 cargo 文档中的jobserver链接指向“最新”版本,而不是固定版本。
cargo: 修复选项描述以大写字母开头的问题 - 修正 cargo 一些选项描述中的大小写问题。
cargo: 重构: 在 Freshness::Dirty 中移除不必要的 Option - 在 cargo 的代码中清理不必要的 Option 使用,优化了Freshness::Dirty的实现。
cargo: 测试:为 x86_64-unknown-none-gnu 修复数据布局 - 为特定目标架构 x86_64-unknown-none-gnu 修复了测试中的数据布局问题。
rust-analyzer: 在 mismatched_arg_count 中用 adjusted_display_range_new 替换了 adjusted_display_range
2024 年 1 月 31 日至 2024 年 2 月 28 日之间的 Rust 活动 🦀
如果你正在组织一个Rust活动,请将其添加到日历中,以便在这里提及。请记得添加活动链接。发送电子邮件给[Rust社区团队][community]以获取访问权限。
请查看最新的 Reddit r/rust 上的招聘帖
正是这个程序的高稳定性让我决定今后一切都用 Rust。我们的社交服务已经实现了将近2.5年的100%正常运行时间。它已经处理了12.9TB的流量,如今的内存使用仍然像2.5年前启动时那样只有1.5MB。资源使用之低让我感动得热泪盈眶。作为一个从 Java 来的人,没有了 OOM 错误或 GC 问题,Rust 带来的好处是巨大的,我看不出自己还会使用其他的编程语言。我是“一次构建,但要正确构建”这种心态的忠实拥护者,这也是为什么 Rust 总是我的首选。
感谢 Brian Kung 的推荐!
本周在 Rust 是由以下编辑编辑:nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
电子邮件列表的主办方是 The Rust Foundation