Rust 1.67 編程語言發布

Rust 1.67 通用編程語言的發布已經發布,該語言由 Mozilla 項目創建,但現在由獨立的非營利組織 Rust 基金會贊助開發。 該語言專注於內存安全,並提供實現高作業並行性的方法,同時避免使用垃圾收集器和運行時(運行時減少為標準庫的基本初始化和維護)。

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

Rust 在編譯時通過引用檢查、跟踪對象所有權、跟踪對像生命週期(範圍)以及評估代碼執行期間內存訪問的正確性來提供內存安全。 Rust 還提供防止整數溢出的保護,要求在使用前強制初始化變量值,更好地處理標準庫中的錯誤,默認應用不可變引用和變量的概念,提供強靜態類型以最小化邏輯錯誤。

主要創新:

  • 對於具有 Future::Output 的非同步函數,現在可以指定“#[must_use]”註釋,其中包含在忽略返回值時發出的警告,這有助於識別由於假設函數將更改值而導致的錯誤而不是傳回一個新值。 #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; 警告:必須使用 `bar` 傳回的 future 的未使用輸出 —> src/lib.rs:5:5 | 5 | 酒吧()。等待; | ^^^^^^^^^^^| = 注意:預設情況下`#[warn(unused_must_use)]`
  • 更新了 FIFO 佇列 std::sync::mpsc(多生產者單一消費者)的實現,已切換為使用 crossbeam-channel 模組,同時保留了先前的 API。 新實現的特點是解決了許多問題、提高了效能並簡化了程式碼維護。
  • API 的新部分已移至穩定類別,包括特性的方法和實現已穩定:
    • {整數}::checked_ilog
    • {整數}::checked_ilog2
    • {整數}::checked_ilog10
    • {整數}::ilog
    • {整數}::ilog2
    • {整數}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • 非零*::位
  • “const”屬性決定了在任何上下文中使用它而不是常量的可能性,用於函數中:
    • 字元::from_u32
    • 字元::來自_數字
    • 字元::到數字
    • 核心::char::from_u32
    • 核心::char::from_digit
  • 第三級支援已實現在 Linux 核心 (linuxkernel) 中使用 Rust,以及 Sony PlayStation 1 (mipsel-sony-psx)、PowerPC with AIX (powerpc64-ibm-aix)、QNX Neutrino RTOS ( aarch64-unknown-nto-)平台qnx710、x86_64-pc-nto-qnx710)。 第三級涉及基本支持,但沒有自動化測試、官方版本的發布以及程式碼可建構性的驗證。

此外,我們還可以注意到 ARM 發布的補丁允許使用 Rust 語言開發驅動程式和為基於 AArch64 架構的系統組裝的 Linux 核心模組。

來源: opennet.ru

添加評論