Rust 1.62 編程語言發布

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

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

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

主要創新:

  • 「cargo」套件管理員提供「add」命令,它允許您在 Cargo.toml 清單中新增的依賴項或從命令列更改現有的依賴項。 該指令還允許您指定各個功能和版本,例如:cargo add serde —features匯出cargo add nom@5
  • 新增了將「#[derive(Default)]」與枚舉一起使用的功能,其中使用「#[default]」屬性定義預設選項。 #[derive(預設)] 枚舉也許{ #[預設] 什麼都沒有,有什麼(T), }
  • 在Linux平台上,基於Linux核心提供的futex的使用,使用更緊湊和更快的Mutex同步機制實現。 與先前使用的基於 pthreads 庫的實作不同,新版本僅使用 5 個位元組而不是 40 個位元組來儲存 Mutex 狀態,同樣,Condvar 和 RwLock 鎖定機制也已轉移到 futex。
  • 已實現對 x86_64-unknown-none 目標平台的第二級支持,旨在生成無需作業系統即可運行的可執行檔。 例如,在編寫核心元件時可以使用指定的目標平台。 第二級支援涉及組裝保證。
  • 已為 aarch64-pc-windows-gnullvm 和 x86_64-pc-windows-gnullvm 平台實現了第三級支援。 第三級涉及基本支持,但沒有自動化測試、發布官方建置或檢查程式碼是否可以建置。
  • API 的新部分已移至穩定類別,包括特性的方法和實現已穩定:
    • 布爾::then_some
    • f32::total_cmp
    • f64::total_cmp
    • 標準輸入::行
    • 視窗::CommandExt::raw_arg
    • 暗示AssertUnwindSafe 的預設值
    • 從 > 對於遙控
    • 從 > 對於弧<[u8]>
    • EncodeWide 的 FusedIterator

    來源: opennet.ru

添加評論