Rust 1.46 programavimo kalbos leidimas

paskelbta 1.46 sistemos programavimo kalbos leidimas Rūdys, įkurta Mozilla projekto. Kalba skirta atminties saugai, suteikia automatinį atminties valdymą ir suteikia įrankius, leidžiančius pasiekti aukštą užduočių lygiagretumą nenaudojant šiukšlių rinktuvo ir Runtime.

„Rust“ automatinis atminties valdymas pašalina klaidas manipuliuojant rodyklėmis ir apsaugo nuo problemų, kylančių dėl žemo lygio atminties manipuliavimo, pvz., prieigos prie atminties srities ją atlaisvinus, nulinių rodyklės nuorodų, buferio viršijimo ir kt. Kuriama paketų tvarkyklė, skirta platinti bibliotekas, užtikrinti surinkimą ir valdyti projekto priklausomybes. krovinys, leidžiančiu vienu paspaudimu gauti programai reikalingas bibliotekas. Saugykla palaikoma prieglobos bibliotekoms dėžės.io.

pagrindinis naujoves:

  • Išplėstos funkcijų, apibrėžtų naudojant posakį „const fn“, galimybės, kurias galima vadinti ne tik įprastomis funkcijomis, bet ir naudoti bet kokiame kontekste vietoj konstantų. Šios funkcijos skaičiuojamos kompiliavimo metu, o ne vykdymo metu, todėl joms taikomi tam tikri apribojimai, pavyzdžiui, galimybė skaityti tik iš konstantų.

    Naujasis leidimas panaikina draudimą naudoti Būlio operatorius („&&“ ir „||“) tokiose funkcijose ir leidžia naudoti „if“, „if let“, „match“ konstrukcijas,
    "while", "while let" ir "loop", taip pat suteikia galimybę konvertuoti į skilteles (slice, dinaminius masyvus) naudojant išraišką "&[T]". Naudojant šias funkcijas „const fn“ funkcijose, kai kurias daug išteklių reikalaujančias operacijas galite perkelti į kompiliavimo etapą. Pavyzdžiui, „const-sha1“ įdiegimas leidžia apskaičiuoti SHA-1 maišą kompiliavimo metu, todėl „WinRT“ susiejimas „Rust“ paspartėja beveik 40 kartų.

  • Kad klaidų pranešimai būtų informatyvesni, stabilizuotas atributo „#[track_caller]“ palaikymas, kuris naudingas tokioms funkcijoms kaip išvyniojimas, kuris gali sukelti paniką, jei tipai naudojami netinkamai. Nurodytą atributą panikos tvarkytojas naudos, kad išspausdintų skambinančiojo vietą klaidos pranešime.
  • Atributas „const“, kuris nustato galimybę jį naudoti bet kuriame kontekste vietoj konstantų, naudojamas std::mem::forget metodu.
  • Nauja API dalis buvo perkelta į stabilią kategoriją, įskaitant stabilizuotą Option::zip ir vec::Drain::as_slice.
  • Pakuotės tvarkyklėje Cargo pridėta naujų aplinkos kintamųjų, nustatytų kompiliuojant paketą, palaikymas: CARGO_BIN_NAME (gaunamo vykdomojo failo pavadinimas), CARGO_CRATE_NAME (paketo pavadinimas), CARGO_PKG_LICENSE (licencija nurodyta manifeste), CARGO_PKG_LICENSE_FILE (licencijos failo kelias).

Šaltinis: opennet.ru

Добавить комментарий