Rust 1.44 編程語言發布

發表 系統程式語言發布 銹1.44,由 Mozilla 專案創建。 該語言專注於記憶體安全,提供自動記憶體管理,並提供在不使用垃圾收集器和 運行.

Rust 的自動記憶體管理消除了操作指標時的錯誤,並防止低階記憶體操作引起的問題,例如在釋放記憶體區域後存取它、空指標取消引用、緩衝區溢位等。 正在開發一個套件管理器來分發庫、確保組裝並管理專案的依賴關係。 貨物,讓您一鍵取得程式所需的庫。 支援儲存庫來託管庫 箱子.

在新版本的公告文本中,Rust 開發者涉足政治,並尖銳地拒絕發布對 Rust 1.44 變化的全面審查,以此作為聲援抗議者反對警察暴力的標誌,表明這個問題更加重要而不是技術知識的交流。 基本的 創新:

  • Cargo 套件管理器整合了「cargo tree」命令,該命令顯示樹狀依賴關係圖。 還添加了選項“—duplicates”(“cargo tree -d”),它允許您評估同一包的不同版本中的依賴關係。

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── 氨v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── 日誌 v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── 日誌 v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [建置依賴項] │ │ │ └── version_check v0.1.5
    ...

  • 對於未綁定到 std(“#![no_std]”)的應用程序,基於“async”函數、async move { ... } 塊和“.await”運算符實現對異步編程技術的支持,這簡化非阻塞處理程序主命令流程的編寫。
  • 解析器中新增了對可擴展模組層次結構定義方案的支援。 例如,以下構造不會產生錯誤,儘管實際上缺少模組“foo/bar/baz.rs”(該構造在語義上仍然無效並且可能會導致錯誤,但可以在以下位置查看和解析更改:宏和條件編譯級別):

    #[cfg(FALSE)] mod foo {
    模組欄{
    模組巴茲;
    }
    }

  • rustc 編譯器新增了在增量模式下使用「-C codegen-units」標誌的功能。 catch_unwind 的實作已重新設計,因此如果停用展開過程並且不引發異常,則不會對效能產生影響。
  • 已為 aarch64-unknown-none、aarch64-unknown-none-softfloat、arm64-apple-tvos 和 x86_64-apple-tvos 平台提供 XNUMX 級支援。 第三級涉及基本支持,但沒有自動化測試和官方版本的發布。
  • 新的部分 API 已轉移到穩定類別,包括穩定的
    PathBuf::with_capacity,
    PathBuf::容量,
    PathBuf::清除,
    PathBuf::保留,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    佈局::align_to,
    佈局::pad_to_align,
    佈局::數組和
    佈局::擴充。

  • 標準函式庫的擴充功能:
    • 新增了一個特殊的「vec![]」變體,該變體直接反映在 Vec::new() 中,允許在上下文中使用「vec![]」而不是常數。
    • 該特徵的實現(impl)已添加到convert::Infallible 哈希.
    • OsString實作智慧型指針 德雷夫穆特 и 索引突變,返回“&mut OsStr”。
    • 新增了對 Unicode 13 的支援。
    • 在字串中實現 來自<&mut str>.
    • IoSlice 實現了該特徵 複製.
    • 向量實施自<[T; N]>。
    • proc_macro::LexError 實作 fmt::Display 和 Error。
  • 「const」屬性決定了在任何上下文中使用它而不是常數的可能性,在所有整數類型的 from_le_bytes、to_le_bytes、from_be_bytes、to_be_bytes、from_ne_bytes 和 to_ne_bytes 方法中使用。
  • 新增了對 Windows 上的 GNU 平台產生“.a”格式而不是“.lib”格式的靜態函式庫的支援。
  • LLVM 的最低要求已提高到 LLVM 版本 8。

來源: opennet.ru

添加評論