Rust 1.62 Programming Language Release

Pelepasan bahasa pemrograman tujuan umum Rust 1.62, 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:

  • Manajer pakét "kargo" nawiskeun paréntah "nambahkeun", anu ngamungkinkeun anjeun pikeun nambihan kagumantungan anyar kana manifest Cargo.toml atanapi ngarobih dependensi anu aya tina garis paréntah. Paréntah ogé ngidinan Anjeun pikeun nangtukeun fitur individu jeung versi, contona: cargo add serde —features derive cargo add nom@5
  • Ditambahkeun kamampuhan pikeun ngagunakeun "#[turunan (Default)]" kalawan enums nu pilihan standar diartikeun maké "#[standar]" atribut. #[turunkeun (Default)] enum Meureun { #[standar] Euweuh, Aya (T), }
  • Dina platform Linux, palaksanaan mékanisme sinkronisasi Mutex anu langkung kompak sareng langkung gancang dianggo, dumasar kana panggunaan futexes anu disayogikeun ku kernel Linux. Teu kawas palaksanaan saméméhna dipaké dumasar kana perpustakaan pthreads, versi anyar migunakeun ukur 5 bait tinimbang 40 pikeun nyimpen kaayaan Mutex. Nya kitu, mékanisme konci Condvar na RwLock geus dibikeun ka futex.
  • Tingkat kadua pangrojong pikeun x86_64-teu kanyahoan-euweuh target platform geus dilaksanakeun, dirancang pikeun ngahasilkeun file laksana anu tiasa dianggo tanpa sistem operasi. Salaku conto, platform target anu ditangtukeun tiasa dianggo nalika nyerat komponén kernel. Tingkat kadua pangrojong ngalibatkeun jaminan assembly.
  • Tingkat katilu pangrojong parantos dilaksanakeun pikeun platform aarch64-pc-windows-gnullvm sareng x86_64-pc-windows-gnullvm. Tingkat katilu ngawengku rojongan dasar, tapi tanpa nguji otomatis, penerbitan resmi ngawangun, atawa mariksa naha kode bisa diwangun.
  • Bagian anyar tina API geus dipindahkeun ka kategori stabil, kaasup métode jeung palaksanaan Tret geus stabilized:
    • bool:: then_some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin:: garis
    • windows :: CommandExt :: raw_arg
    • impl nilai standar pikeun AssertUnwindSafe
    • Ti > keur Rc
    • Ti > pikeun Arc<[u8]>
    • FusedIterator pikeun EncodeWide

    sumber: opennet.ru

Tambahkeun komentar