
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将是该平台最后一次列为一级支援,短期内仍会提供编译工具与标準函式库,但长期缺乏完整测试可能影响相容性。