跨語言呼叫不再「讀錯數」
Rust 1.99.1最關鍵的修正在於外部函式介面(FFI)。過去在部分x86-64平台上,當C語言呼叫Rust函式並期望獲得布林值(1或0)時,編譯器產生的程式碼未依規範將回傳資料的部分位元歸零,導致呼叫端可能收到其他錯誤數字。這問題隱蔽性高,因為程式能順利編譯,錯誤卻在執行時才爆發。新版已恢復正確的回傳值處理邏輯,但請注意,先前使用受影響版本編譯的程式,必須重新編譯才能套用此修正。
解決UEFI與macOS開發痛點
除了核心邏輯修正,開發環境的穩定性也大幅提升。針對UEFI韌體開發,LLVM最佳化時自動加入的wcslen函式呼叫,常因部分韌體環境缺乏該函式而導致連結失敗,新版透過在編譯器內建函式庫加入備援實作來補足缺口。此外,macOS使用者若直接執行Rust編譯器而非透過rustup代理,常因搜尋路徑設定不完整,讓連結器rust-lld找不到LLVM函式庫。1.99.1已修正此路徑設定,確保連結器能正確載入所需檔案,讓開發流程更順暢。
立即更新建議
Rust 1.99.1已正式發布,對於依賴Rust進行系統級開發或跨語言整合的工程師來說,這是一個必須升級的維護版本。透過rustup管理環境的使用者,只需執行簡單指令即可更新至最新穩定版,避免潛在的執行期錯誤與建置中斷。