2023-07-26
本文由 ChatGPT(gpt-4-1106-preview) 翻譯。
您好,歡迎閱讀Rust 本週動態的又一期! Rust 是一種賦予所有人構建可靠與高效軟體的編程語言。 這是關於它的進展和社群的每週摘要。 想要在此提及些什麼?在 Twitter 上標記我們 @ThisWeekInRust 或在 mastodon.social 上的 @ThisWeekinRust,或發送我們一個 pull 請求。 想要參與?我們歡迎貢獻。
Rust 本週動態 是在 GitHub 上公開開發,歸檔可以在 this-week-in-rust.org 查看。 如果您發現本週刊中有任何錯誤,請提交一個 PR。
這週的 crate 是 tower-async,這是一個目前僅支持夜間版的 async 函式庫,用於建立基於 tower 的網絡伺服器。
感謝 Glen De Cauwsemaecker 提出自我推薦!
一直想貢獻開源項目,但不知從何開始嗎? 每週,我們將從 Rust 社群中突出顯示一些任務,供您挑選並開始著手進行!
其中一些任務可能還有導師可用,請訪問任務頁面以獲取更多資訊。
ockam project enroll 的默認配置ockam project ticket 應返回一個合適的錯誤訊息如果您是 Rust 項目擁有者,並且正在尋找貢獻者,請在此處提交任務。
過去一週共有 406 個拉請求被合併了
target_arch 值riscv64gc-unknown-hermit 目標平臺x86_64-unknown-linux-ohos 目標平臺x86_64-unknown-uefi 啟用 chkstk/alloca 內建函數.comment 段落(!llvm.ident)from_bits, to_bits 於 IP 地址#[inline] 至核心調試斷言幫助函數no_builtins 時,新增 no-builtins 屬性至函數總是對標量和標量對進行常數傳播 (Const-prop) 總是對純量和純量對實行常數傳播
遍歷 mpsc 線程項目時避免訪問 TLS 在遍歷 mpsc 線程條目時避免訪問 TLS
改善 dlltool 錯誤的診斷信息 提升 dlltool 錯誤的診斷信息
在新解算器中加註註釋 對新求解器進行評註
不翻譯編譯器內部的錯誤信息 不轉譯編譯器內部缺陷信息
在元數據中編碼跨度的縮寫 在元數據中編碼 span 的縮略手法
錯誤/E0691: 在錯誤信息中包含對齊方式 錯誤/E0691:錯誤訊息中應包含對齊參數
修復目標特徵 1.1 上帶有 #[inline(always)] 的閉包
修正在帶有目標特性 1.1 的閉包上使用 #[inline(always)]
修復與內插塊一起使用 inline_const 的問題
修復與插值塊一同使用 inline_const 時的問題
當本地和外來項目都被內聯時,修正內聯重新導出的顯示錯誤 當本地和外部項目皆被內聯時,修正內聯重新導出的無效顯示情形
這些標題來自 Rust 語言的 GitHub 存儲庫,說明了近期提交的不同類型的改進和修復。
unused_qualifications 建議中移除範圍計算的問題assume 的情況下獲取切片迭代器上的 !nonnull 元數據simd_shuffle 中使用預先計算的常量-Z reference-niches 選項Scope::Elisionarg_iter 重命名為 iter_instantiatedrustc_llvm:添加一個 -Z print-codegen-stats 選項來顯示 LLVM 統計資料codegen_gcc 中重用 codegen_ssa 單態化錯誤-Z reference-niches 選項"--print KIND=PATH 命令列語法try 和 async 的插值塊features() 而非 features_untracked()EncodeUtf16 的 size_hintOsString 的字節{Rc,Arc}::allocator 變成相關函數chown 函數(unix_chown)Path::with_extension 中移除一次配置 (allocation)core::sync::atomic::ATOMIC_*_INIT 常量impl Extend<&'a T> for Vec<T, A> 移除生命週期界限 AEquivalentTryStreamExt::try_ready_chunks 作為失敗版本的 StreamExt::ready_chunks"ffi_const" 函數屬性的支援~/.cargo/{git,registry} 跳過 mtime 檢查doc(hidden) 則剝離 impldefault 的定位significant_drop_tightening 不要對返回字面值的函式進行 lintsignificant_drop_tightening 修正對元組釋放識別的錯誤inherent_to_string:不對 unsafe 或外部(extern)函式進行 lintmanual_filter_map:在 matches 和模式匹配上進行 lintptr_arg 應該忽略外部函式redundant_pattern_matching:在建議中包括守衛unnecessary_literal_unwrap:修正在 None.unwrap_or_default() 上的內部編譯錯誤(ICE)unused_async:如果路徑引用async函式但沒有立即調用,則不要lintunwrap_or_else_default改為unwrap_or_default並改進結果lintSelf::cmp(self, other)作為正確的實現unnecessary_cast中檢查是否有完全限定的路徑SpanlessEq::eq_expr中檢查類型是否相等unwrap_or_else_default的錯誤肯定needless_pass_by_ref_mut lint處理異步函式的錯誤option_env!在ifs_same_cond中的錯誤肯定comparison_to_empty在if let/let鏈條上工作absolute_paths,
以下是針對 Rust 語言中 Clippy 工具庫中相關功能改進和修正的摘要與連結:error_impl_error:這個提交修正了當執行錯誤時,誤導性實作 Error 特徵的提示。four_forward_slashes:這個提交新增了一條 lint,用於檢測源碼中是否有出現四個連續斜線(////)的註解,這通常是一個標點符號錯誤。iter_skip_zero:這個提交新增了一條 lint,來識別並提議移除對迭代器中的 skip(0) 調用,因為它毫無作用。needless_return_with_try:這個提交新增了一條 lint,旨在識別在 try 區塊中包含不必要 return 關鍵字的情況。redundant_guards:這個提交新增了一條 lint,可以識別在模式匹配守衛中不必要的表達式。string_lit_chars_any:這個提交新增了一條 lint,針對不必要地使用 chars().any(...) 而可以直接使用 contains(...) 進行檢測。redundant_locals:這個提交改善了對局部變量是否有多餘使用的偵測。dereference.rs to util functions:對 dereference.rs 文件中的某些部分進行了重構,將這些代碼抽象成通用函數。#![allow(unused)] and --crate-name from cargo dev new_lint generated tests:從 cargo dev new_lint 生成的測試中移除了 #![allow(unused)] 屬性和 --crate-name 選項,這是一個對開發者工具的改良。tuple_array_conversions:重寫了 tuple_array_conversions lint,提高了其性能和可靠性。這些提交都是對 Clippy 工具進行更新、優化和修錯,在日常使用 Rust 時,可以透過這些改進提升代碼質量和維護性。
is_dyn_method 中查找超級特徵incorrect-ident-casechange_visibility 輔助只適用於相關項目2023-07-26 至 2023-08-23 之間的 Rust 活動 🦀
(請注意,實際活動的資訊與細節可能需要查閱具體的 Rust 社群網站或通告來獲得。)
如果您正在舉辦一場Rust活動,請將其添加到日曆中以在此處提及。記得添加活動的鏈接。請通過電子郵件聯繫Rust 社群團隊以獲取訪問權限。
請查看 Reddit 上 r/rust 中的最新誰在招聘主題帖。
一位 Rust 程序員不喜歡在最後可能會後悔的情況下被告知「可以」。
– Predrag Gruevski 在 mastodon 上
感謝 Kevin Mehall 的建議!
《本週在 Rust》是由以下人員編輯:nellshamrell、llogiq、cdmistman、ericseppanen、extrawurst、andrewpollack、U007D、kolharsam、joelmarcey、mariannegoldin、bennyvasquez。
電子郵件列表的託管由 The Rust Foundation 贊助。