Rust 1.93.0 穩定版發佈

新聞
HongKong
8
02:30 PM · Jan 23 ,2026

Rust 1.93.0 穩定版已正式發佈,主要帶來以下變化:

將捆綁的 musl 更新至 1.2.5 版本

各類*-linux-musltargets 現均搭載 musl 1.2.5 版本。這主要影響到捆綁了 musl 1.2.3 的靜態 musl 構建版本,例如x86_64aarch64powerpc64le。此次更新包含多項修復和改進,並引入一項影響 Rust 生態系統的破壞性變更。

對於 Rust 生態系統而言,此次更新的主要動機是大幅改進 musl 的 DNS 解析器,該改進在 1.2.4 版本中首次推出,並在 1.2.5 版本中修復了一些錯誤。當使用musl targets 進行靜態鏈接時,這將顯著提升可移植 Linux 二進制文件的網絡操作可靠性,尤其在處理大型 DNS 記錄和遞歸域名服務器時效果顯著。

然而,1.2.4 版本也帶來了一個破壞性變更:移除了 Rust libc crate 使用的幾個舊版兼容性符號。該問題的修復程序已在 2023 年 6 月發佈的 libc 0.2.146 版本中提供(距今已有兩年半時間),項目團隊認為修復程序已得到充分普及,因此準備在 Rust targets 中進行相應的更改。

詳情可參閲之前的公告。

允許全局分配器使用線程局部存儲

Rust 1.93 調整了標準庫的內部結構,允許用 Rust 編寫的全局分配器使用 std 庫,並且 std::thread::current通過使用系統分配器來避免重入問題。

Rust 1.93 調整了標準庫的內部實現,使用 Rust 編寫的全局分配器能夠通過使用系統分配器來避免重入性問題,從而安全地使用 std's thread_local! 和 std::thread::current

詳情參閲文檔。

cfg attributes on asm! lines

asm!( // or global_asm! or naked_asm!
    "nop",
    #[cfg(target_feature = "sse2")]
    "nop",
    // ...
    #[cfg(target_feature = "sse2")]
    a = const 123, // only used on sse2
);

Stabilized APIs

  • <[MaybeUninit<T>]>::assume_init_drop
  • <[MaybeUninit<T>]>::assume_init_ref
  • <[MaybeUninit<T>]>::assume_init_mut
  • <[MaybeUninit<T>]>::write_copy_of_slice
  • <[MaybeUninit<T>]>::write_clone_of_slice
  • String::into_raw_parts
  • Vec::into_raw_parts
  • <iN>::unchecked_neg
  • <iN>::unchecked_shl
  • <iN>::unchecked_shr
  • <uN>::unchecked_shl
  • <uN>::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
user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.