Cargo 依賴版本選擇改進
穩定了最小支持 Rust 版本(MSRV)感知的解析器,該解析器會優先選擇與項目聲明的 MSRV 兼容的依賴版本,減少了維護者支持舊工具鏈的工作量,無需手動為每個依賴選擇舊版本。可以通過.cargo/config.toml
文件啟用 MSRV 感知解析器:
收起
toml
[resolver]
incompatible-rust-versions="fallback"
新 trait 求解器的遷移
Rust 編譯器正在遷移到新的 trait 求解器實現。在 1.84.0 中,新求解器用于檢查 trait 實現的連貫性,負責確保在考慮其他 crate 中尚未編寫或不可見代碼的情況下,最多只有一個 trait 實現適用于給定類型。此更改修復了舊實現的一些理論正確性問題,可能會導致以前未報告的 “trait 的沖突實現……” 錯誤,但受影響的模式非常罕見。
嚴格來源 API
Rust 1.84.0 引入了一組新的 API,可以在許多情況下替代整數指針轉換的使用,從而避免此類轉換固有的歧義,使得代碼更易于推理和分析,也有利于 Miri 等工具和 Cheri 等架構檢測和診斷指針濫用。
穩定化的 API
穩定了多個 API,包括:
ipv6addr::is_unique_local
ipv6addr::is_unicast_link_local
core::ptr::with_exposed_provenance
core::ptr::with_exposed_provenance_mut
<ptr>::addr
<ptr>::expose_provenance
<ptr>::with_addr
<ptr>::map_addr
<int>::isqrt
<int>::checked_isqrt
<uint>::isqrt
nonzero::isqrt
core::ptr::without_provenance
core::ptr::without_provenance_mut
core::ptr::dangling
core::ptr::dangling_mut
pin::as_deref_mut
這些 API 現在在常量上下文中也是穩定的。
其他變化
- 允許在
#(forbid)
中使用#(deny)
并將其作為無操作指令。 - 在 Windows 上,在所有情況下都支持
/
作為include!
。 - 添加
--printhost-tuple
參數來打印主機目標元組。 - 添加
wasm32v1-none
目標支持,目前它屬于 tier2 級別。 - 移除了
wasm32-wasi
目標,因為該目標現在名為wasm32-wasip1
。
如果你已經通過 rustup 安裝了 Rust,可以通過以下命令升級到 1.84.0 版本:
收起
bash
rustup update stable
如果你還沒有安裝 rustup,可以從Rust 官方網站獲取,并查看 1.84.0 的詳細發布說明。