Izdanje Rust programskog jezika 1.52

Objavljeno je izdanje sistemskog programskog jezika Rust 1.52, utemeljenog na projektu Mozilla, ali sada razvijenog pod pokroviteljstvom nezavisne neprofitne organizacije Rust Foundation. Jezik se fokusira na sigurnost memorije, omogućuje automatsko upravljanje memorijom i pruža sredstva za postizanje visokog paralelizma zadataka bez korištenja skupljača smeća ili vremena izvođenja (vrijeme izvođenja je smanjeno na osnovnu inicijalizaciju i održavanje standardne biblioteke).

Rustovo automatsko upravljanje memorijom uklanja pogreške prilikom manipulacije pokazivačima i štiti od problema koji proizlaze iz manipulacije memorijom niske razine, kao što je pristup memorijskoj regiji nakon što je oslobođena, dereferenciranje nultog pokazivača, prekoračenje međuspremnika, itd. Za distribuciju knjižnica, osiguranje sklapanja i upravljanje ovisnostima, projekt razvija upravitelja paketa Cargo. Repozitorij crates.io podržan je za smještaj knjižnica.

Glavne inovacije:

  • Redoslijed izvršavanja naredbi "cargo check" i "cargo clippy" je uklonjen. Prije, pozivanje "cargo clippy" nakon "cargo check" nije pokretalo uslužni program clippy (linter) zbog nedostatka razdvajanja predmemorije između ova dva načina provjere. Ovaj problem je sada riješen i redoslijed pozivanja "cargo clippy" i "cargo check" više nije važan.
  • Novi dio API-ja prebačen je u stabilnu kategoriju, uključujući sljedeće metode koje su stabilizirane:
    • Argumenti::as_str
    • znak::MAX
    • znak::ZAMJENSKI_ZNAK
    • znak::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::particijska_točka
    • str::rsplit_once
    • str::split_once
  • Atribut “const”, koji određuje mogućnost korištenja u bilo kojem kontekstu umjesto konstanti, koristi se u metodama:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Dodana je lint check unsafe_op_in_unsafe_fn za otkrivanje nesigurnog koda omotanog nesigurnim blokovima kada se koristi u nesigurnim funkcijama.
  • Promjenjivi pokazivači na nizove mogu se pretvoriti u pokazivače istog tipa kao i element niza. neka mut x: [usize; 2] = [0, 0]; neka p = &mut x as *mut usize; neka p = &mut x as *const usize;
  • Dodano je 9 novih provjera u Clippy (linter).
  • Upravitelj teretnih paketa sada podržava polje "manifest_path" u JSON-u. Repozitorij crates.io sada podržava navođenje podataka o licenci u SPDX 3.11 formatu.
  • Sada je moguće odrediti više filtera prilikom pokretanja testova, na primjer, pokretanjem "cargo test - foo bar" pokrenut će se svi testovi koji odgovaraju maskama "foo" i "bar".
  • Zadani LLVM alatni lanac ažuriran je na LLVM 12.
  • Podrška razine 3 implementirana je za platforme s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl i powerpc-unknown-openbsd. Razina 3 pruža osnovnu podršku, ali bez automatiziranog testiranja, službenih izdanja ili provjere verzija.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster