Rust 1.100允許延後採用新套件,Never Type歷經10年正式穩定
記事本文
6 段落 · 単語をタップ(クリック)または文章を選ぶと翻訳 · 単語をタップ/文章を選ぶと翻訳程式語言Rust開發團隊發布Rust 1.100.0,套件管理工具Cargo新增依賴套件發布冷卻期,讓開發者延後採用剛上架的套件版本,降低軟體供應鏈攻擊風險。新版也正式支援歷經10年5次進入穩定階段嘗試未果的Never Type,並開放自訂記憶體配置器的核心介面。
Cargo負責管理Rust專案使用的第三方套件,過去更新依賴套件時,通常會選用符合版本要求的較新版本。新增的冷卻期機制允許開發者設定等待天數,例如設為3天,Cargo便會略過發布未滿3天的版本,改從其他符合條件的版本中選擇。由於惡意套件可能在發布數小時或數天後才被安全工具或社群發現,延後採用可降低開發專案立即取得惡意版本的風險。
該機制須由開發者自行啟用,不會排除已記錄在Cargo.lock鎖定檔中的版本,使用Cargo安裝指令安裝程式時也不適用。Rust團隊提醒,冷卻期只能降低部分供應鏈攻擊風險,無法取代套件更新時的安全檢查。
另一項重要更新是Never Type,在程式碼中以驚嘆號「!」表示,用來表示不會產生值的運算,例如執行無窮迴圈、直接結束程式,或透過return提前離開函式。過去Rust已允許在函式回傳型別中使用「!」,新版則開放在其他需要指定型別的位置使用,例如明確表示某項運算不可能傳回錯誤。
Rust也將原本表示不可能產生值的Infallible型別改為「!」的別名,讓既有程式介面與新寫法相容。不過,新版也調整Rust 2015、2018及2021語言版本的Never Type型別推導規則,當編譯器無法確定應使用哪種型別時,原本會以「()」作為替代,如今改用「!」,少數既有程式可能因此出現編譯錯誤。
Rust 1.100也將自訂記憶體配置器的核心介面納入穩定版,讓開發者能替動態陣列Vec與智慧指標Box指定記憶體配置方式,但還沒擴及所有標準容器。Cargo也新增未使用依賴套件的警告,並調整建置目錄結構,減少不同建置設定使用同一目錄時可能發生的檔案衝突。
段落ごとの訳がずれるときに
全文翻訳
単語をタップ(クリック)すると単語を、文章を選ぶとその範囲をすぐに翻訳します。