Rust 1.73 編程語言發布

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

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

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

主要創新:

  • 預設程式崩潰處理程序(恐慌)發出的訊息格式已重新設計。 在「panic!」巨集中指定的文本現在顯示在不含引號的單獨行上,使訊息更易於閱讀,並在存在嵌套引號或拆分為多行時消除混亂。 fn main() { 讓 file = "ferris.txt"; 恐慌!(“哦不!{文件:?}沒有找到!”); 有線程“main”因“哦不!”而驚慌失措。 「ferris.txt」找不到!',src/main.rs:3:5 執行緒「main」在 src/main.rs:3:5 處驚慌失措:哦不! 找不到“ferris.txt”!

    觸發“assert_eq”和“assert_ne”巨集時顯示的訊息輸出也已重新設計。 fn main() { assert_eq!("🦀", "🐟", "摩天不是魚"); 有線程“main”因“斷言失敗:`(左==右)`左:`“🦀”`,右:`“🐟”`:摩天不是魚'而驚慌失措,src / main.rs: 2 : 5 線程“main”在src/main.rs:2:5 處驚慌:斷言`left == right` 失敗:ferris 不是魚左:“🦀” 右:“🐟”

  • 根據 RFC 3184,新增了直接操作執行緒本機 (thread_local) LocalKey 儲存鍵的能力 > 和本機金鑰 > 透過使用get()、set()、take()和replace()方法,而不是使用「with(|inner| ...)」閉包,這樣就不需要為使用巨集「thread_local!」時為新線程指定的預設值線程本地! { 靜態事物:細胞 > = Cell::new(Vec::new()); } fn f() { // was THINGS.with(|i| i.set(vec![32, 1, 2])); // 變成 THINGS.set(vec![3, 1, 2]); // ... // 讓 v = THINGS.with(|i| i.take()); // 變成了 let v: Vec =東西.take(); }
  • API 的新部分已移至穩定類別,包括特性的方法和實現已穩定:
    • 無符號 {integer}::div_ceil
    • 無符號 {integer}::next_multiple_of
    • 無符號 {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • 本地密鑰:: >::取得
    • 本地密鑰:: >::設定
    • 本地密鑰:: >::採取
    • 本地密鑰:: >::替換
    • 本地密鑰:: >::with_borrow
    • 本地密鑰:: >::with_borrow_mut
    • 本地密鑰:: >::設定
    • 本地密鑰:: >::採取
    • 本地密鑰:: >::替換
  • “const”屬性決定了在任何上下文中使用它而不是常量的可能性,用於函數中:
    • rc::弱::新
    • 同步::弱::新
    • 非空::as_ref
  • 編譯器在「.comment」部分提供版本資訊的記錄,類似GCC和Clang。
  • 已為 aarch64-unknown-teeos、csky-unknown-linux-gnuabiv2、riscv64-linux-android、riscv64gc-unknown-hermit、x86_64-unikraft-linux-musl 和 x86_64-unknown-linux 平台實現第三級支援-噢。 第三級涉及基本支持,但沒有自動化測試、發布官方建置或檢查程式碼是否可以建置。
  • 對目標平台 wasm32-wasi-preview1-threads 的第二級支援已實現。 第二級支援涉及組裝保證。

來源: opennet.ru

添加評論