Rust 1.67 Programming Language Release

Pelepasan bahasa pemrograman tujuan umum Rust 1.67, diadegkeun ku proyék Mozilla, tapi ayeuna dikembangkeun dina naungan organisasi nirlaba bebas Rust Foundation, parantos diterbitkeun. basa museurkeun kana kaamanan memori jeung nyadiakeun sarana pikeun ngahontal paralelisme pakasaban tinggi bari Ngahindarkeun pamakéan a collector sampah na runtime (runtime diréduksi jadi initialization dasar tur pamaliharaan perpustakaan baku).

Métode penanganan memori Rust nyalametkeun pamekar tina kasalahan nalika ngamanipulasi pointer sareng ngajagi tina masalah anu timbul kusabab panangan mémori tingkat rendah, sapertos aksés ka daérah mémori saatos dibébaskeun, dereferencing pointer null, overruns panyangga, jsb. Pikeun ngadistribusikaeun perpustakaan, nyadiakeun ngawangun jeung ngatur kagumantungan, proyék ngamekarkeun manajer pakét Cargo. Repositori crates.io dirojong pikeun perpustakaan hosting.

Kasalametan memori disayogikeun dina Rust dina waktos kompilasi ngaliwatan pamariksaan rujukan, ngalacak kapamilikan obyék, ngalacak umur obyék (skop), sareng ngira-ngira kabeneran aksés mémori nalika palaksanaan kode. Karat ogé nyadiakeun panyalindungan ngalawan overflows integer, merlukeun initialization wajib nilai variabel saméméh pamakéan, handles kasalahan hadé dina perpustakaan baku, nerapkeun konsép rujukan immutable sarta variabel sacara standar, nawarkeun ketak statik kuat pikeun ngaleutikan kasalahan logis.

Inovasi utama:

  • Pikeun fungsi async kalawan Future:: Output, ayeuna mungkin pikeun nangtukeun "#[must_use]" annotations nu ngawengku peringatan lamun nilai balik teu dipalire, nu mantuan ngaidentipikasi kasalahan disababkeun ku asumsi yén fungsi bakal ngarobah nilai. tinimbang mulangkeun nilai anyar. # [must_use] async fn bar () -> u32 {0} async fn panelepon () {bar ().await; } peringatan: kaluaran anu henteu kapake tina masa depan dipulangkeun ku `bar` anu kedah dianggo —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^^^ | = catetan: `#[warn(unsed_must_use)]` on sacara standar
  • Palaksanaan FIFO antrian std :: sinkronisasi :: mpsc (multi-produser single-konsumen) geus diropéa, nu geus switched pikeun ngagunakeun modul crossbeam-kanal bari ngajaga API saméméhna. Palaksanaan anyar dibédakeun ku ngarengsekeun sababaraha masalah, kinerja anu langkung luhur sareng pangropéa kode anu saderhana.
  • Bagian anyar tina API geus dipindahkeun ka kategori stabil, kaasup métode jeung palaksanaan Tret geus stabilized:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Atribut "const", anu nangtukeun kamungkinan ngagunakeunana dina konteks naon waé tinimbang konstanta, dianggo dina fungsi:
    • char::ti_u32
    • char::from_digit
    • char::to_digit
    • inti::char::from_u32
    • inti::char::from_digit
  • Tingkat katilu dukungan parantos dilaksanakeun pikeun ngagunakeun Rust dina kernel Linux (linuxkernel), ogé pikeun Sony PlayStation 1 (mipsel-sony-psx), PowerPC sareng AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) platforms qnx710, x86_64-pc-nto-qnx710). Tingkat katilu ngawengku rojongan dasar, tapi tanpa nguji otomatis, penerbitan resmi ngawangun, atawa mariksa naha kode bisa diwangun.

Salaku tambahan, urang tiasa nyatet publikasi patch ku ARM anu ngamungkinkeun ngagunakeun basa Rust pikeun ngembangkeun supir sareng modul kernel Linux anu dirakit pikeun sistem dumasar kana arsitektur AArch64.

sumber: opennet.ru

Tambahkeun komentar