无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

rust 1.95.0 最新版發布:語言特性、編譯器、平臺支持、標準庫、Rustdoc 與兼容性變更全解析

0
分享至




rust 1.95.0 最新版發布:語言特性、編譯器、平臺支持、標準庫、Rustdoc 與兼容性變更全解析

2026年4月16日,Rust 1.95.0 正式發布。作為一次重要版本更新,這一版在語言層、編譯器、平臺支持、標準庫、Rustdoc 以及兼容性方面都帶來了相當豐富的調整。

一、Rust 1.95.0 發布概覽

Rust 1.95.0 的更新可以概括為幾個關鍵詞:

  • ? 語言特性繼續完善

  • ? 標準庫穩定 API 持續擴展

  • ? 編譯器能力增強

  • ? 平臺支持范圍擴大

  • ? Rustdoc 體驗優化

  • ? 一些兼容性細節發生變化,需要升級時重點關注

這次版本并不是單純增加幾個 API,而是在多個核心方向上同步推進:
一方面繼續穩定一些常用語言能力;另一方面也在修復 const-eval、模式匹配、導入規則、ABI 處理等底層行為,使 Rust 在更大規模工程里的表現更穩定、更一致。

二、Language:語言層更新重點

Rust 1.95.0 在語言特性方面的變化非常值得關注,尤其是一些和模式匹配、const 語義、導入規則相關的內容。

1. 穩定 match 分支上的 if let guards

本次版本中,if let guards on match arms被穩定。
這意味著在match的分支條件中,可以使用更靈活的if let守衛表達能力,增強模式匹配的可讀性和表達力。

對于經常處理復雜枚舉分支的代碼來說,這個能力非常實用。它讓match的條件判斷更接近業務邏輯本身,而不是被迫拆成多層嵌套判斷。

2. irrefutable_let_patterns lint 不再在 let chains 上進行提示

irrefutable_let_patterns這個 lint 現在不再對let chains發出提示。
這項變化主要是為了減少誤報,讓 lint 行為更符合實際語義。

3. 支持對路徑段關鍵字進行重命名導入

Rust 現在支持導入path-segment keywords并進行 renaming。
這屬于導入系統的一項增強,意味著某些在路徑段中具有關鍵字屬性的標識,也可以通過更靈活的方式重新命名后導入,提升了模塊引用的表達能力。

4. PowerPC 與 PowerPC64 的 inline assembly 穩定

Rust 1.95.0 穩定了 PowerPC 和 PowerPC64 平臺的 inline assembly。
這對于需要直接編寫底層匯編代碼的場景尤其重要,說明 Rust 在更多架構上的低層能力正在逐步完善。

5. const-eval:typed copies 時 padding 的行為更加一致

這次版本對 const-eval 中 typed copies 的 padding 行為做了更一致的處理。
這屬于比較底層但非常關鍵的修正,因為 const 計算中對字節填充的處理方式更統一后,能減少一些邊緣情況下的行為差異。

6. const blocks 不再用于判斷涉及 fallible operations 的表達式是否可被隱式常量提升

這是一個很重要的行為變化。
以前,const blocks 會被用于判斷某些包含可失敗操作的表達式能否被隱式 constant promotion。現在不再這樣做。
也就是說,如果一個表達式是否能隱式提升,依賴于 const block 的結果,那么這種表達式將不再被隱式提升。

這會影響一些依賴隱式常量提升的代碼路徑,尤其是在更復雜的常量表達式場景下。

7. 模式匹配的操作語義不再依賴 crate 和 module

Rust 1.95.0 調整了 pattern matching 的 operational semantics,使其不再依賴 crate 和 module。
這是一項語義層面的改進,目的在于讓模式匹配的行為更獨立、更一致,減少由于模塊或 crate 結構差異帶來的潛在影響。

三、Compiler:編譯器更新重點

編譯器部分的更新一方面涉及新參數穩定,另一方面也有安全修復和構建行為調整。

1. 穩定 --remap-path-scope

--remap-path-scope現在被穩定,用于控制路徑重映射在最終二進制中的作用范圍。
對于需要控制編譯產物中路徑信息暴露范圍的場景來說,這項能力會非常有用。它使路徑重映射不再只是簡單的“替換路徑”,而是可以更精細地控制作用域。

2. 為 vendored musl 應用 CVE-2026-6042 和 CVE-2026-40200 補丁

Rust 1.95.0 對 vendored musl 應用了針對 CVE-2026-6042 和 CVE-2026-40200 的補丁。
這說明本次更新也包含安全層面的修復,尤其與 musl 相關的構建環境和目標平臺會受到影響。
對于使用相關工具鏈的用戶來說,這類修復是升級的重要理由之一。

四、Platform Support:平臺支持范圍擴大

Rust 一直在持續擴展平臺覆蓋面,1.95.0 也延續了這一趨勢。

1. powerpc64-unknown-linux-musl 提升為 Tier 2 with host tools

該目標平臺被提升到 Tier 2 with host tools。
這意味著它的支持等級進一步提升,平臺可用性更強。

2. 多個 Apple 平臺目標提升為 Tier 2

本次版本將以下目標提升為 Tier 2:

  • ? aarch64-apple-tvos

  • ? aarch64-apple-tvos-sim

  • ? aarch64-apple-watchos

  • ? aarch64-apple-watchos-sim

  • ? aarch64-apple-visionos

  • ? aarch64-apple-visionos-sim

這表明 Rust 對 Apple 新一代系統與模擬器目標的支持繼續增強。
對于需要在這些平臺上構建和驗證 Rust 代碼的開發者來說,這無疑是一個積極信號。

五、Libraries:標準庫與庫文檔更新

標準庫層面的變化非常豐富,既有文檔說明,也有性能優化。

1. thread::scope:補充 join 與 TLS destructors 的交互說明

thread::scope的文檔現在補充了join和 TLS destructors 之間如何交互的說明。
這有助于開發者更準確地理解線程作用域、線程退出以及線程局部存儲析構之間的關系,減少誤用。

2. 在默認啟用 neon target feature 的 aarch64 目標上加速 str::contains

str::contains在默認啟用 neon target feature 的 aarch64 目標上得到了性能提升。
這屬于標準庫層面的實用優化,雖然不改 API,但會直接影響字符串查找相關代碼的性能表現。

六、Stabilized APIs:本次穩定的 API 一覽

Rust 1.95.0 中穩定了不少 API,覆蓋內存處理、原子類型、集合操作、布局計算等多個方向。下面逐項整理。

1. MaybeUninit 數組相關轉換與引用能力

本次穩定了以下 API:

  • ?MaybeUninit<[T; N]>: From<[MaybeUninit ; N]>

  • ?MaybeUninit<[T; N]>: AsRef<[MaybeUninit ; N]>

  • ?MaybeUninit<[T; N]>: AsRef<[MaybeUninit ]>

  • ?MaybeUninit<[T; N]>: AsMut<[MaybeUninit ; N]>

  • ?MaybeUninit<[T; N]>: AsMut<[MaybeUninit ]>

  • ?[MaybeUninit ; N]: From >

這組 API 對數組初始化和逐步構造非常有幫助。
MaybeUninit常用于需要手動控制初始化過程的場景,這些轉換和引用能力的穩定,意味著處理數組級別未初始化數據時會更加自然。

2. Cell 數組相關 AsRef 穩定

以下 API 也已穩定:

  • ?Cell<[T; N]>: AsRef<[Cell ; N]>

  • ?Cell<[T; N]>: AsRef<[Cell ]>

  • ?Cell<[T]>: AsRef<[Cell ]>

這讓Cell在數組和切片層面的引用轉換更方便。

3. bool: TryFrom<{integer}>

bool: TryFrom<{integer}>已穩定。
這意味著從整數向bool的受控轉換能力更完善,不過它依然是TryFrom語義,強調轉換可能失敗而不是盲目轉換。

4. 原子類型的 update 與 try_update

以下 API 被穩定:

  • ?AtomicPtr::update

  • ?AtomicPtr::try_update

  • ?AtomicBool::update

  • ?AtomicBool::try_update

  • ?AtomicIn::update

  • ?AtomicIn::try_update

  • ?AtomicUn::update

  • ?AtomicUn::try_update

這些 API 提供了更方便的原子更新機制,適用于需要基于當前值進行計算并寫回的新場景。
相比手寫循環或更低層的原子操作,這些接口在表達上更直接,也更貼近實際并發更新需求。

5. cfg_select!

cfg_select!現在穩定。
這是一個與條件編譯相關的重要能力,能夠幫助開發者在編譯期根據配置選擇不同分支,增強跨平臺和特性分支代碼的組織能力。

6. mod core::range

core::range模塊已穩定。
這意味著范圍相關的核心能力被進一步正式化,為范圍類型及其迭代行為提供更明確的標準庫支持。

7. core::range::RangeInclusive

core::range::RangeInclusive穩定。
這類范圍類型是 Rust 中非常常見的基礎表達工具,穩定后使用更加明確。

8. core::range::RangeInclusiveIter

core::range::RangeInclusiveIter也已穩定。
這讓包含邊界的區間迭代行為有了更清晰的標準庫支持。

9. core::hint::cold_path

core::hint::cold_path穩定。
這類 hint 通常用于向編譯器傳達路徑冷熱信息,從而幫助優化生成代碼。

10. 指針上的 as_ref_unchecked / as_mut_unchecked

以下 API 已穩定:

  • ?<*const T>::as_ref_unchecked

  • ?<*mut T>::as_ref_unchecked

  • ?<*mut T>::as_mut_unchecked

這類接口明顯偏底層,允許開發者在確認安全條件的前提下進行更直接的指針引用轉換。
由于它們帶有 unchecked 特征,因此使用時要非常謹慎。

11. Vec 相關可變插入接口

以下 API 穩定:

  • ?Vec::push_mut

  • ?Vec::insert_mut

這類 API 對于需要直接在向量內部構造或修改元素的場景很有幫助,能減少一些中間步驟。

12. VecDeque 相關可變插入接口

以下 API 穩定:

  • ?VecDeque::push_front_mut

  • ?VecDeque::push_back_mut

  • ?VecDeque::insert_mut

這讓雙端隊列在兩端和中間的插入操作更靈活。

13. LinkedList 相關可變插入接口

以下 API 也已穩定:

  • ?LinkedList::push_front_mut

  • ?LinkedList::push_back_mut

這為鏈表的頭尾構造提供了更直接的接口。

14. Layout::dangling_ptr

Layout::dangling_ptr穩定。
這一能力與內存布局相關,通常用于底層內存管理場景。

15. Layout::repeat / repeat_packed / extend_packed

以下布局相關 API 穩定:

  • ?Layout::repeat

  • ?Layout::repeat_packed

  • ?Layout::extend_packed

這些能力與結構體、數組、打包布局的計算密切相關,在進行內存布局推導和低層數據結構設計時很有價值。

七、這些 API 現在也可在 const 上下文中使用

Rust 1.95.0 還宣布了一批此前已穩定的 API 現在也可以在 const contexts 中使用:

  • ?fmt::from_fn

  • ?ControlFlow::is_break

  • ?ControlFlow::is_continue

這意味著這些能力現在不僅可以在普通運行時代碼中使用,也能在 const 場景下發揮作用。
對于需要更多編譯期表達能力的代碼來說,這是一項非常實用的擴展。

八、Rustdoc:文檔工具更新

Rustdoc 在本次版本中也有兩項重要變化。

1. 搜索結果中降低 unstable items 的排序優先級

Rustdoc 的搜索結果現在會把 unstable items 排在更后的位置。
這會讓用戶在搜索文檔時更容易優先看到可用、穩定的條目,提升查找體驗。

2. 新增 “hide deprecated items” 設置

Rustdoc 增加了一個新的 “hide deprecated items” 設置。
這對閱讀文檔時減少噪音很有幫助,尤其在大型庫文檔中,屏蔽掉已廢棄項目能讓信息更聚焦。

九、Compatibility Notes:兼容性變化重點

升級 Rust 1.95.0 時,以下兼容性變化需要特別關注,因為它們可能會影響現有代碼或構建流程。

1. 數組 coercions 可能帶來更少的推斷約束

數組 coercions 現在可能引入比之前更少的 inference constraints。
這類變化會影響類型推斷行為,通常表現為某些代碼的推斷結果與之前略有不同。

2. 不再允許不重命名地導入 $crate

use $crate::{self};現在不再被允許,這是因為對 self imports 的錯誤檢查更嚴格了。
這是一項比較明確的兼容性收緊,需要留意宏或內部導入寫法。

3. const-eval padding 行為更一致,極少數情況下可能導致編譯錯誤

前面提到的 typed copies padding 行為修正,在極少數情況下可能導致編譯錯誤。
原因是某些指針相關字節可能進入 const 或 static 的 padding bytes。
雖然這種情況非常少見,但如果你的代碼涉及底層內存布局、指針字節和常量初始化,就要特別注意。

4. ambiguous_glob_imported_traits 未來不兼容警告

當使用有歧義的 glob 導入 trait 時,現在會報告ambiguous_glob_imported_traits未來不兼容警告。
這有助于提前暴露潛在沖突,避免后續升級帶來更大問題。

5. 檢查僅提到類型參數的類型的 lifetime bounds

現在會檢查那些只提到類型參數的類型的 lifetime bounds。
這項變化會讓邊界檢查更嚴格,從而暴露出過去可能被放過的一些問題。

6. 報告更多 visibility 相關的歧義導入錯誤

與可見性相關的 ambiguous import 錯誤現在會被報告得更充分。
這意味著一些以前可能不明顯的導入歧義,現在會更早被發現。

7. Deprecate Eq::assert_receiver_is_total_eq 并對手動 impl 發出未來兼容性警告

Eq::assert_receiver_is_total_eq現在被棄用,同時對手動 impl 會發出未來兼容性警告。
這項變化和 trait 語義一致性有關,升級時最好檢查相關實現。

8. powerpc64:使用 target spec 中設置的 ELF ABI version,而不是猜測

powerpc64現在會使用 target spec 中設置的 ELF ABI 版本,而不是自行猜測。
這也修復了 OpenBSD 目標所使用的 ELF ABI。
如果你涉及 powerpc64 相關構建,這一變化非常關鍵。

9. 匹配 #[non_exhaustive] 枚舉時現在會讀取 discriminant

即使一個#[non_exhaustive]枚舉只有一個 variant,匹配它時也會讀取 discriminant。
這可能導致某些 closure 捕獲與之前不同的值。
這是一個容易忽略但確實可能影響行為的變化點。

10. mut ref 和 mut ref mut 模式在 struct pattern field shorthand 中重新正確限制為 unstable

這些模式本來屬于 Match Ergonomics 2024 RFC 的不穩定內容,但曾經在穩定版的 struct pattern field shorthand 中被意外允許。
現在它們已經被正確地 feature-gated 為 unstable。
如果你的代碼使用了這類寫法,升級時需要特別檢查。

11. 為與內建屬性沖突的 derive helper attributes 添加未來兼容性警告

當 derive helper attributes 和內建屬性沖突時,現在會增加未來兼容性警告。
這有助于盡早發現潛在命名沖突。

12. JSON target specs 重新被 destabilized,并需要 -Z unstable-options

JSON target specs 現在被重新設為不穩定,需要-Z unstable-options才能使用。
此前它們在沒有標準庫時不能使用,而標準庫又沒有穩定的構建方式。
為了配合未來 build-std 的支持,Rust 現在主動將 JSON target specs 保持為不穩定,以免在 build-std 穩定后失去這種邊界控制。
Cargo 現在會包含-Z json-target-specCLI 標志,在需要時自動向編譯器傳遞-Z unstable-options

13. 無效 target 上的 #[feature] 參數現在會被檢查

#[feature]屬性在無效 target 上的參數,現在會被檢查。
這意味著編譯器會更早地發現不合法配置,減少潛在誤用。

十、Internal Changes:內部變化

Rust 1.95.0 還包含一項重要的內部更新:

  • ? 更新至 LLVM 22

這項變化不直接影響公開 API,但會帶來 rustc 及相關工具內部性能和實現層面的提升。
對于整個編譯器生態來說,這類升級通常意味著底層優化、代碼生成改進,以及更多內部一致性的增強。

十一、總結:Rust 1.95.0 值得關注的原因

代碼地址:github.com/rust-lang/rust

如果要用一句話概括 Rust 1.95.0,那就是:
這是一次覆蓋面很廣、既有語言層穩定,也有標準庫擴展,同時兼顧兼容性與平臺支持的重要版本。

它的亮點主要包括:

  • ? match arms 上的 if let guards 穩定

  • ? 多個MaybeUninitCell、原子類型、布局計算相關 API 穩定

  • ?cfg_select!core::rangecore::hint::cold_path等能力正式可用

  • ?VecVecDequeLinkedList的可變插入接口更完善

  • ? Rustdoc 的搜索和隱藏廢棄項體驗更好

  • ? 平臺支持范圍擴展到多個 Apple 新目標以及 powerpc64-linux-musl

  • ? LLVM 22 更新帶來內部能力提升

  • ? 若干兼容性變化需要升級時認真排查

對于準備升級到 Rust 1.95.0 的項目來說,建議重點關注以下幾類代碼:

  1. 1. 依賴 const 語義和 typed copies 的代碼

  2. 2. 使用宏、$crate、trait glob 導入、derive helper attributes 的代碼

  3. 3. 涉及#[non_exhaustive]枚舉匹配的代碼

  4. 4. 使用 JSON target specs 的構建流程

  5. 5. 依賴 powerpc64、musl、Apple 新平臺目標的工程

  6. 6. 使用底層指針、布局計算、原子更新接口的實現

總的來看,Rust 1.95.0 不是單點優化,而是一次從語言到工具鏈再到平臺支持的全面升級。

我們相信人工智能為普通人提供了一種“增強工具”,并致力于分享全方位的AI知識。在這里,您可以找到最新的AI科普文章、工具評測、提升效率的秘籍以及行業洞察。 歡迎關注“福大大架構師每日一題”,發消息可獲得面試資料,讓AI助力您的未來發展。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
吃他汀一顆南瓜子不能碰?提醒:不止南瓜子,這4樣食物也要小心

吃他汀一顆南瓜子不能碰?提醒:不止南瓜子,這4樣食物也要小心

芹姐說生活
2026-05-12 16:25:54
女子結婚不到一周,卻因摩洛哥新娘視頻導致離婚

女子結婚不到一周,卻因摩洛哥新娘視頻導致離婚

映射生活的身影
2026-05-12 12:13:28
浙大鄭強教授:我不承認中國大學生就業難,是舒服的工作難找,建議少點抱怨少點索取

浙大鄭強教授:我不承認中國大學生就業難,是舒服的工作難找,建議少點抱怨少點索取

TOP大學來了
2026-05-11 16:39:00
內塔尼亞胡稱“不喜歡中國向伊朗導彈制造提供的支持” 中方回應

內塔尼亞胡稱“不喜歡中國向伊朗導彈制造提供的支持” 中方回應

財聯社
2026-05-12 15:27:18
公然拒掛國旗,訂單全給日韓,長榮如今的結局早已注定

公然拒掛國旗,訂單全給日韓,長榮如今的結局早已注定

瀲滟晴方DAY
2026-05-11 06:31:37
揚眉吐氣史無前例!第一次把在任美國國務卿永久攔在中國國門外

揚眉吐氣史無前例!第一次把在任美國國務卿永久攔在中國國門外

雪中風車
2026-05-12 13:10:31
忍無可忍,烏克蘭與川普徹底攤牌,20國爭相與烏展開合作

忍無可忍,烏克蘭與川普徹底攤牌,20國爭相與烏展開合作

史政先鋒
2026-05-12 14:44:10
上海大學通報“院長蘇某某論文被舉報數據造假”:已成立調查組,啟動調查程序 ,將根據調查情況嚴肅認真處理

上海大學通報“院長蘇某某論文被舉報數據造假”:已成立調查組,啟動調查程序 ,將根據調查情況嚴肅認真處理

魯中晨報
2026-05-12 16:54:06
普京已經開始絕望:戰爭發生轉折了

普京已經開始絕望:戰爭發生轉折了

黔有虎
2026-05-11 20:02:09
15萬  !比亞迪又一款新車正式上市!

15萬 !比亞迪又一款新車正式上市!

科技堡壘
2026-05-12 13:03:17
女子推搡哨兵后續:官媒發聲,知情人爆料,恐不止坐牢這么簡單

女子推搡哨兵后續:官媒發聲,知情人爆料,恐不止坐牢這么簡單

千言娛樂記
2026-05-12 15:10:56
特朗普即將訪華,英媒:美已意識到中國比美國想象中更強大

特朗普即將訪華,英媒:美已意識到中國比美國想象中更強大

混沌錄
2026-05-11 18:07:10
大霧黃色預警繼續:山東江蘇等地局地有濃霧或強濃霧

大霧黃色預警繼續:山東江蘇等地局地有濃霧或強濃霧

界面新聞
2026-05-12 18:11:19
穿禮服后退款后續:女子身份曝光社死,工作遭牽連,商家準備起訴

穿禮服后退款后續:女子身份曝光社死,工作遭牽連,商家準備起訴

八斗小先生
2026-05-12 17:23:09
林浩:汶川地震9歲小英雄,被姚明抱上奧運,發誓考清華,現狀如何

林浩:汶川地震9歲小英雄,被姚明抱上奧運,發誓考清華,現狀如何

阿傖說事
2026-05-12 12:24:10
北京G3半場逆轉廣東!聯防+雙小外立功,周琦統治籃下,廣東靠2將

北京G3半場逆轉廣東!聯防+雙小外立功,周琦統治籃下,廣東靠2將

籃球資訊達人
2026-05-12 20:33:39
京滬高鐵漲價,罵聲一片

京滬高鐵漲價,罵聲一片

鳳眼論
2026-05-12 16:53:49
今早高峰江場路近云秀路SUV側翻釀3車事故 駕駛員脫困幸無人員傷亡

今早高峰江場路近云秀路SUV側翻釀3車事故 駕駛員脫困幸無人員傷亡

上觀新聞
2026-05-12 17:38:06
彭加木被找到了!知情人:DNA專家說99%就是彭加木,但有個遺憾!

彭加木被找到了!知情人:DNA專家說99%就是彭加木,但有個遺憾!

拳擊時空
2026-05-12 05:55:35
美媒披露:阿聯酋秘密對伊朗發動軍事打擊

美媒披露:阿聯酋秘密對伊朗發動軍事打擊

參考消息
2026-05-12 20:36:12
2026-05-12 21:39:00
moonfdd incentive-icons
moonfdd
福大大架構師每日一題
1221文章數 67關注度
往期回顧 全部

科技要聞

宇樹發布載人變形機甲,定價390萬元起

頭條要聞

新電動車到手不足一月頻繁自動鎖死 老人被摔傷五六次

頭條要聞

新電動車到手不足一月頻繁自動鎖死 老人被摔傷五六次

體育要聞

總是掉鏈子的“倒霉蛋”,闖進了歐戰決賽

娛樂要聞

白鹿風波升級!掉粉20萬評論區淪陷

財經要聞

黃仁勛真是被白宮徹底封殺了

汽車要聞

吉利銀河“TT”申報圖曝光 電動尾翼+激光雷達

態度原創

親子
數碼
時尚
本地
軍事航空

親子要聞

amh值0.95怎么調理?吃什么可以讓卵泡長得好又大又圓?

數碼要聞

綠聯推出“AP16”16英寸便攜屏:2.5K 165Hz +揚聲器,1799元

穿極簡風的夏天,是真高級!

本地新聞

用蘇繡的方式,打開江西婺源

軍事要聞

知情人士披露:美國或考慮恢復對伊朗軍事行動

無障礙瀏覽 進入關懷版