Rust團隊釋出1.89.0版本,帶來多項語言功能與編譯器更新,涵蓋語法可讀性提升、平臺支援調整,以及針對跨平臺與硬體特性的最佳化。本次更新的主要亮點,是在常數泛型(const generics)引數中開放使用底線符號_進行自動推斷,讓泛型常數的使用更簡潔。

過去在使用常數泛型時,即使常數值能從程式脈絡自動判斷,開發者仍必須手動填入,例如建立固定長度的陣列時,長度必須在定義中重複寫出,而1.89版本新增的_語法,讓編譯器能在程式內根據上下文自動推斷常數值,省去重複輸入。不過,在函式簽章(Function Signature)中依然需要明確寫出常數,避免因推斷造成編譯歧義。

Rust 1.89新增mismatched_lifetime_syntaxes預設警告,協助開發者檢查函式輸入與輸出生命周期的語法是否一致。雖然Rust允許省略生命周期標註(Lifetime Elision)讓編譯器自動推斷,但當輸入與輸出使用不同寫法,閱讀起來便容易造成混淆,例如輸入為&[u8],輸出卻省略了生命周期標註,這種情況系統便會觸發警告,並建議開發者明確使用'_標示,讓相依關係更易懂。

在效能方面,Rust 1.89擴充了x86平臺的目標功能設定,新增支援SHA-512、SM3、SM4、KL與Wide KL等指令集,並補充多組AVX-512相關函式,方便針對密碼學、資料處理與向量化運算啟用特定硬體能力。測試流程上,文件範例測試現在也能跨平臺執行,開發者在指定目標平臺時即可進行檢驗。當範例在某些平臺會失敗,可以在範例前加上忽略該平臺的標註,讓測試情境更貼近實際部署環境。

C語言呼叫約定函式(extern "C")現在可直接使用i128與u128型別而不會觸發警告,前提是平臺支援對應的C語言__int128型別。在WebAssembly上,wasm32-unknown-unknown目標的extern "C"介面已改為符合標準的C ABI,提升與其他語言及工具鏈的相容性。

由於GitHub將停止提供x86_64 macOS免費執行環境,加上Apple宣布淘汰Intel架構,Rust計畫把x86_64-apple-darwin從第一級支援,降為第二級支援含主機端工具(Tier 2 with Host Tools),Rust 1.89將是該平臺最後一次列為一級支援,短期內仍會提供編譯工具與標準函式庫,但長期缺乏完整測試可能影響相容性。

熱門新聞

Advertisement