Basa pemrograman Rust 1.68 release

Basa pemrograman tujuan umum Rust 1.68, didegaké déning proyèk Mozilla nanging saiki dikembangaké ing sangisoré organisasi nirlaba independen Rust Foundation, wis dirilis. Basa kasebut fokus ing safety memori lan nyedhiyakake sarana kanggo nggayuh paralelisme proyek sing dhuwur nalika ngindhari panggunaan kolektor sampah lan runtime (runtime dikurangi dadi initialization dhasar lan pangopènan perpustakaan standar).

Cara nangani memori Rust nylametake pangembang saka kesalahan nalika manipulasi penunjuk lan nglindhungi masalah sing muncul amarga penanganan memori tingkat rendah, kayata ngakses area memori sawise dibebasake, null pointer dereferencing, overruns buffer, etc. Kanggo nyebarake perpustakaan, nyedhiyakake mbangun lan ngatur dependensi, proyek kasebut ngembangake manajer paket Cargo. Repositori crates.io didhukung kanggo hosting perpustakaan.

Keamanan memori diwenehake ing Rust ing wektu kompilasi liwat mriksa referensi, nglacak kepemilikan obyek, nglacak umur obyek (skop), lan netepake akurasi akses memori sajrone eksekusi kode. Rust uga menehi pangayoman marang overflows integer, mbutuhake initialization prentah saka nilai variabel sadurunge nggunakake, Ngalahake kasalahan luwih apik ing perpustakaan standar, ditrapake konsep referensi immutable lan variabel minangka standar, nawakake typing statis kuwat kanggo nyilikake kasalahan logis.

Inovasi utama:

  • Dhukungan kanggo protokol Sparse wis stabil ing manajer paket Cargo lan repositori crates.io, sing nemtokake cara anyar kanggo nggarap indeks sing nuduhake versi sing kasedhiya kanggo kabeh paket sing ana ing gudang. Protokol anyar ngidini sampeyan nambah kacepetan kerja karo crates.io kanthi signifikan lan ngatasi masalah skala kanthi nambah jumlah paket ing repositori.

    Kanggo nyuda wektu tundha amarga ngundhuh indeks lengkap, Sparse tinimbang ngakses indeks nggunakake Git, langsung ngundhuh liwat HTTPS mung data indeks sing dibutuhake, sing nyakup dependensi proyek tartamtu. Layanan index.crates.io anyar digunakake kanggo ngasilake data indeks. Kanthi gawan, protokol anyar direncanakake digunakake ing cabang Rust 1.70, lan sadurunge, kanggo ngaktifake, sampeyan bisa nyetel variabel lingkungan "CARGO_REGISTRIES_CRATES_IO_PROTOCOL = jarang" utawa nambah parameter 'protokol = menyang "[registries.crates". -io]" bagean saka file .cargo/config.toml "jarang"'.

  • Nambahake "pin!" makro, sing ngidini nggawe struktur Pin<&mut T> saka ekspresi "T" kanthi pinning lokal negara kasebut (ora kaya Box :: pin ora ngalokasi memori ing tumpukan, nanging ngiket ing tingkat tumpukan) .
  • A handler kesalahan alokasi memori standar ngajokaken, kang digunakake nalika nggunakake paket alloc standar. Aplikasi sing mung ngaktifake alloc (tanpa std) saiki bakal nelpon "gupuh!" Handler ing gagal alokasi memori, sing bisa dicegat kanthi opsional "#[panic_handler]". Program sing nggunakake perpustakaan std isih bakal print informasi kesalahan kanggo stderr lan kacilakan.
  • Bagean anyar saka API wis dipindhah menyang kategori stabil, kalebu cara lan implementasine sifat wis stabil:
    • {inti,std}::pin::pin!
    • impl Saka kanggo {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut kanggo PathBuf
  • Atribut "const", sing nemtokake kamungkinan kanggo nggunakake ing sembarang konteks tinimbang konstanta, digunakake ing VecDeque :: fungsi anyar.
  • Platform Android saiki mbutuhake paling sethithik NDK r25 (API 19), yaiku. Versi Android sing didhukung minimal wis diunggahake dadi 4.4 (KitKat).
  • Tingkat katelu dhukungan kanggo platform Sony PlayStation Vita wis dileksanakake (armv7-sony-vita-newlibeabihf). Tingkat katelu nuduhake dhukungan dhasar, nanging tanpa tes otomatis, penerbitan resmi mbangun lan mriksa kemampuan kanggo mbangun kode kasebut.

Source: opennet.ru

Add a comment