Rust 1.54 編程語言發布

系統程式語言 Rust 1.54 已發布,該語言由 Mozilla 計畫創建,但現在由獨立非營利組織 Rust 基金會贊助開發。 該語言專注於記憶體安全,提供自動記憶體管理,並提供了無需使用垃圾收集器或運行時即可實現高任務並行性的方法(運行時被簡化為標準庫的基本初始化和維護)。

Rust 的自動內存管理使開發人員在操作指針時避免錯誤,並防止由於低級內存操作而出現的問題,例如在內存區域被釋放後訪問它、取消引用空指針、緩衝區溢出等。 為了分發庫、提供構建和管理依賴項,該項目開發了 Cargo 包管理器。 crates.io 存儲庫支持託管庫。

主要創新:

  • 新增了在屬性內使用類似函數的巨集的功能(過程巨集和使用「macro_rules!」巨集建立的巨集)。此類宏透過符號「!」與函數區分開來。在名稱 (macro!(...)) 之後並替換巨集來源文字而不是產生函數呼叫。在屬性中呼叫巨集對於將其他文件的內容包含在記錄註解中非常有用。例如,要插入 README 檔案的內容和腳本執行的結果,可以指定: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/ generated .rs" )] mod 生成;
  • wasm32 平台的內建編譯器函數(Intrinsics)已經穩定,允許在 WebAssembly 中使用 SIMD 指令。大多數函數(例如 v128_bitselect)都可以在「安全性」模式下使用,但某些使用指標的函數(例如 v128_load)仍然是「不安全」的。
  • 增量編譯的預設使用已經回歸,允許您僅重建程式碼中發生變化的部分,這可以顯著減少在進行微小更改後重新編譯時建立專案所需的時間。由於在新增從磁碟快取載入資料的額外檢查後出現的隱藏錯誤,增量編譯在版本 1.52.1 中被停用。
  • 新的部分 API 已轉移到穩定類別,包括以下穩定的 API:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • 拱門::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • 選項已新增至貨物樹:“—prune ”從依賴關係圖中刪除包,“—深度”僅顯示依賴關係樹中給定巢狀層級的元素,“—edges no-proc-”巨集”來隱藏程式巨集的依賴關係。

來源: opennet.ru

添加評論