![]()
![]()
![]()
2026年1月22日,Rust 官方正式發(fā)布Rust 1.93.0。本次更新帶來了語(yǔ)言層面的多項(xiàng)穩(wěn)定特性、編譯器優(yōu)化、平臺(tái)支持拓展、標(biāo)準(zhǔn)庫(kù)改進(jìn)以及 Cargo 和 Rustdoc 的實(shí)用增強(qiáng)。這一版本在性能、安全性和系統(tǒng)兼容性方面都有顯著提升。以下為詳細(xì)版本更新內(nèi)容解析。
一、語(yǔ)言特性更新
Rust 1.93.0 對(duì)語(yǔ)言層面進(jìn)行了多項(xiàng)穩(wěn)定化與行為修正:
? 穩(wěn)定s390x向量相關(guān)目標(biāo)特性以及is_s390x_feature_detected!宏。
? 支持系統(tǒng) ABI 下的C 風(fēng)格可變參數(shù)函數(shù)聲明穩(wěn)定化。
? 當(dāng)使用某些關(guān)鍵字作為cfg 條件時(shí),編譯器會(huì)明確報(bào)錯(cuò)。
?asm_cfg特性正式穩(wěn)定。
? 在常量求值(const-evaluation)期間支持按字節(jié)復(fù)制指針。
?LUB 強(qiáng)制轉(zhuǎn)換(Least Upper Bound coercions)現(xiàn)在能夠正確處理函數(shù)項(xiàng)類型及安全性不同的函數(shù)。
? 允許包含可變引用靜態(tài)項(xiàng)的 const 項(xiàng)(非常危險(xiǎn),但并非總是未定義行為)。
? 新增兩個(gè)警告默認(rèn)開啟的 lint:
?const_item_interior_mutations:警告對(duì)具有內(nèi)部可變性的 const 項(xiàng)進(jìn)行變更操作。
?function_casts_as_integer:警告將函數(shù)指針強(qiáng)制轉(zhuǎn)為整數(shù)類型的操作。
? 編譯器穩(wěn)定化了-Cjump-tables=bool參數(shù)(之前為 -Zno-jump-tables)。
該項(xiàng)影響函數(shù)跳轉(zhuǎn)表生成方式,助力優(yōu)化調(diào)度與體積。
? 新增riscv64a23-unknown-linux-gnu平臺(tái),晉升為Tier 2(不包含宿主工具)。
關(guān)于 Tier 分級(jí)的更多信息可參考 Rust 平臺(tái)支持頁(yè)面。
本次標(biāo)準(zhǔn)庫(kù)在安全與性能之間進(jìn)行了平衡調(diào)整,核心變化如下:
? 停止在內(nèi)部對(duì)
Copytrait 使用特化(specialization),因?yàn)樵谝蕾嚿芷诘?code>Copy實(shí)現(xiàn)中會(huì)導(dǎo)致不安全行為。這可能造成性能回退,部分標(biāo)準(zhǔn)庫(kù) API 會(huì)調(diào)用Clone::clone而非位復(fù)制。? 允許全局分配器(global allocator)使用線程局部存儲(chǔ)以及
std::thread::current()。? 修復(fù) BTree::append 行為,確保當(dāng)附加鍵已存在時(shí),不會(huì)更新已有鍵。
? 不再要求
T: RefUnwindSafe對(duì)應(yīng)vec::IntoIter : UnwindSafe。
Rust 1.93.0 穩(wěn)定了一批新 API,進(jìn)一步增強(qiáng)底層能力與安全控制:
?
<[MaybeUninit ]>::assume_init_drop?
<[MaybeUninit ]>::assume_init_ref?
<[MaybeUninit ]>::assume_init_mut?
<[MaybeUninit ]>::write_copy_of_slice?
<[MaybeUninit ]>::write_clone_of_slice?
String::into_raw_parts?
Vec::into_raw_parts?
::unchecked_neg?
::unchecked_shl?
::unchecked_shr?
::unchecked_shl?
::unchecked_shr?
<[T]>::as_array?
<[T]>::as_mut_array?
<*const [T]>::as_array?
<*mut [T]>::as_mut_array?
VecDeque::pop_front_if?
VecDeque::pop_back_if?
Duration::from_nanos_u128?
char::MAX_LEN_UTF8?
char::MAX_LEN_UTF16?
std::fmt::from_fn?
std::fmt::FromFn
這些新增穩(wěn)定接口提升了內(nèi)存控制、數(shù)值操作及格式化能力。
六、Cargo 更新
本次 Cargo 工具也有不少實(shí)用增強(qiáng):
? 根據(jù)編譯 profile,在構(gòu)建腳本中啟用CARGO_CFG_DEBUG_ASSERTIONS。
? 在cargo tree命令中,支持長(zhǎng)形式的--format 變量。
? 新增--workspace參數(shù)支持到cargo clean命令。
Rustdoc 文檔生成器的體驗(yàn)進(jìn)一步優(yōu)化:
? 移除
#![doc(document_private_items)]。? 搜索過濾中包括屬性宏及派生宏。
? 搜索過濾中包括extern crate 導(dǎo)入項(xiàng)。
? 增強(qiáng) crate 級(jí)文檔屬性校驗(yàn),例如
html_favicon_url、html_logo_url、html_playground_url、issue_tracker_base_url、html_no_source。
如果這些屬性值缺失、異常或類型錯(cuò)誤,將觸發(fā)默認(rèn)拒絕(deny-by-default)lint ——rustdoc::invalid_doc_attributes。
本次更新還帶來多項(xiàng)兼容性提示及未來預(yù)警:
? 新增pin_v2到內(nèi)置屬性命名空間。
? 捆綁的 musl 更新至1.2.5。
? 在Emscripten環(huán)境中,panic=unwind 時(shí)的異常 ABI 由 JS 異常改為wasm 異常處理 ABI。鏈接 C/C++ 對(duì)象時(shí)需傳入
-fwasm-exceptions。
在 nightly Rust 上,可通過-Zwasm-emscripten-eh=false -Zbuild-std獲取舊行為,但未來會(huì)移除。? 當(dāng)在無意義的地方(如 trait 方法或類型)使用
#[test]屬性時(shí),編譯器現(xiàn)將報(bào)錯(cuò),不再忽略;同時(shí) rustdoc 生成也會(huì)出錯(cuò)。? Cargo 在更多場(chǎng)景下設(shè)置CARGO_CFG_DEBUG_ASSERTIONS環(huán)境變量,這可能導(dǎo)致依賴static-init 1.0.1–1.0.3的 crate 編譯失敗。
? 在offset_of!宏中,用戶自定義類型將檢查是否結(jié)構(gòu)良好。
? 執(zhí)行cargo publish時(shí),當(dāng)
build.build-dir未設(shè)置時(shí),不再生成可訪問的.crate文件工件。? lintderef_nullptr從警告默認(rèn)(warn-by-default)提升為默認(rèn)拒絕(deny-by-default)。
? 新增未來兼容性警告:
? 針對(duì)函數(shù)參數(shù)中未模式綁定(pattern)的 ... 參數(shù),除 extern 塊之外提醒。
? 針對(duì)repr(C)枚舉的 discriminant 值不適配 c_int/c_uint。
? 針對(duì)repr(transparent)的行為忽略repr(C)類型警告。
代碼地址:github.com/rust-lang/rust
Rust 1.93.0 是一次穩(wěn)健且深度的更新版本。從語(yǔ)言細(xì)節(jié)到標(biāo)準(zhǔn)庫(kù)安全修正、再到平臺(tái)支持與工具鏈增強(qiáng),都體現(xiàn)了 Rust 一貫的“安全、并發(fā)、性能”核心理念。無論是編譯器優(yōu)化、Cargo 構(gòu)建體驗(yàn),還是 Rustdoc 文檔一致性,都在此版本迎來全面進(jìn)步。
Rust 1.93.0 的發(fā)布標(biāo)志著 Rust 在系統(tǒng)級(jí)語(yǔ)言領(lǐng)域持續(xù)邁進(jìn),為開發(fā)者提供更強(qiáng)的安全保證和更高效的編譯環(huán)境。
結(jié)語(yǔ):
Rust 1.93.0 不僅是一個(gè)版本號(hào),更是語(yǔ)言設(shè)計(jì)成熟度的再一次體現(xiàn)。開發(fā)者可立即升級(jí)體驗(yàn)最新穩(wěn)定特性,享受更強(qiáng)的系統(tǒng)安全與開發(fā)效率。
我們相信人工智能為普通人提供了一種“增強(qiáng)工具”,并致力于分享全方位的AI知識(shí)。在這里,您可以找到最新的AI科普文章、工具評(píng)測(cè)、提升效率的秘籍以及行業(yè)洞察。 歡迎關(guān)注“福大大架構(gòu)師每日一題”,發(fā)消息可獲得面試資料,讓AI助力您的未來發(fā)展。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
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.