Rust 1.52 forritunarmálsútgáfa

Útgáfa kerfisforritunarmálsins Rust 1.52, stofnað af Mozilla verkefninu, en nú þróað undir merkjum óháðu sjálfseignarstofnunarinnar Rust Foundation, hefur verið gefin út. Tungumálið einbeitir sér að minnisöryggi, veitir sjálfvirka minnisstjórnun og veitir aðferðina til að ná mikilli samsvörun verkefna án þess að nota sorphirðu eða keyrslutíma (keyrslutími minnkar í grunnuppstillingu og viðhald á venjulegu bókasafni).

Sjálfvirk minnisstjórnun Rust útilokar villur þegar verið er að meðhöndla ábendingar og verndar gegn vandamálum sem stafa af minni meðhöndlun á lágu stigi, eins og aðgangur að minnissvæði eftir að það hefur verið losað, frávísanir á núll bendi, offramkeyrsla á biðminni osfrv. Til að dreifa bókasöfnum, tryggja samsetningu og stjórna ósjálfstæði er verkefnið að þróa farmpakkastjórann. Crates.io geymslan er studd til að hýsa bókasöfn.

Helstu nýjungar:

  • Fjarlægði bindingu við framkvæmdarröð skipana „farmaskoðunar“ og „farmaklippingar“. Áður var ekki hægt að ræsa clippy tólið (linter) að kalla "cargo clippy" eftir "cargo check" vegna skorts á skyndiminni aðskilnað fyrir þessar athuga stillingar. Nú er þetta vandamál leyst og röðin sem „cargo clippy“ og „cargo check“ eru kallaðir í skiptir ekki lengur máli.
  • Nýr hluti af API hefur verið fluttur í stöðugan flokk, þar á meðal hafa eftirfarandi aðferðir verið stöðugar:
    • Rök::as_str
    • bleikja::MAX
    • bleikja::REPLACEMENT_CHARACTER
    • bleikja::UNICODE_VERSION
    • bleikja::decode_utf16
    • bleikja::frá_staf
    • char::from_u32_unchecked
    • bleikja::frá_u32
    • sneið :: skiptingarpunktur
    • str::rsplit_einu sinni
    • str::skipta_einu sinni
  • „const“ eigindin, sem ákvarðar möguleikann á að nota hann í hvaða samhengi sem er í stað fasta, er notaður í aðferðunum:
    • bleikja::len_utf8
    • bleikja::len_utf16
    • bleikju::to_ascii_hástafir
    • bleikja::to_ascii_lágstafir
    • bleikju::eq_ignore_ascii_case
    • u8::to_ascii_hástafir
    • u8::to_ascii_lágstafir
    • u8::eq_ignore_ascii_case
  • Bætt við lóathugun unsafe_op_in_unsafe_fn til að ákvarða hvort óöruggur kóði sem notaður er í óöruggum aðgerðum sé ramma inn af óöruggum kubbum.
  • Það er leyfilegt að varpa breytanlegum beinum í fylki í formi ábendinga á gerð fylkisþáttarins. láta mut x: [nota; 2] = [0, 0]; láttu p = &mut x sem *mut nota; láttu p = &mut x sem *const nota;
  • 9 nýjum ávísunum hefur verið bætt við clippy (linter).
  • Farmpakkastjórinn styður nú „manifest_path“ reitinn í JSON fyrir pakka. Bætti við stuðningi við að tilgreina leyfisupplýsingar á SPDX 3.11 sniði við crates.io geymsluna.
  • Það er leyfilegt að tilgreina margar síur þegar prófanir eru keyrðar, til dæmis að keyra "cargo test - foo bar" mun keyra öll próf sem passa við grímurnar "foo" og "bar".
  • Sjálfgefið LLVM verkfærasett hefur verið uppfært í LLVM 12.
  • Þriðja stig stuðnings hefur verið innleitt fyrir s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl og powerpc-unknown-openbsd pallana. Þriðja stigið felur í sér grunnstuðning, en án sjálfvirkrar prófunar, útgáfu opinberra smíða eða athuga hvort hægt sé að smíða kóðann.

Heimild: opennet.ru

Bæta við athugasemd