Rust 1.67 forritunarmálsútgáfa

Útgáfa Rust 1.67 almennt forritunarmálsins, stofnað af Mozilla verkefninu, en nú þróað undir merkjum óháðu sjálfseignarstofnunarinnar Rust Foundation, hefur verið gefin út. Tungumálið leggur áherslu á minnisöryggi og veitir leiðina til að ná mikilli samhliða vinnu á sama tíma og forðast notkun á sorphirðu og keyrslutíma (keyrslutími minnkar í grunnuppsetningu og viðhald á venjulegu bókasafni).

Minni meðhöndlunaraðferðir Rust bjarga þróunaraðilanum frá villum við meðhöndlun ábendinga og vernda gegn vandamálum sem koma upp vegna minnis meðhöndlunar á lágu stigi, eins og aðgangur að minnissvæði eftir að það hefur verið losað, frávísun núllbenda, offramkeyrsla á biðminni o.s.frv. Til að dreifa bókasöfnum, útvega smíði og stjórna ósjálfstæði, þróar verkefnið farmpakkastjórann. Crates.io geymslan er studd til að hýsa bókasöfn.

Minni öryggi er veitt í Rust á þýðingu tíma með tilvísun athugun, halda utan um eignarhald hlut, halda utan um líftíma hlut (umfang) og meta réttmæti minni aðgangs meðan kóða er keyrt. Ryð veitir einnig vernd gegn heiltöluflæði, krefst skyldubundinnar frumstillingar breytugilda fyrir notkun, meðhöndlar villur betur í stöðluðu bókasafni, beitir hugmyndinni um óbreytanlegar tilvísanir og breytur sjálfgefið, býður upp á sterka truflanir innsláttar til að lágmarka rökfræðilegar villur.

Helstu nýjungar:

  • Fyrir ósamstilltar aðgerðir með Future::Output er nú hægt að tilgreina "#[must_use]" athugasemdir sem innihalda viðvörun ef skilgildið er hunsað, sem hjálpar til við að bera kennsl á villur sem stafa af þeirri forsendu að fallið muni breyta gildunum frekar en að skila nýju gildi. #[must_use] ósamstilltur fn bar() -> u32 { 0 } ósamstilltur fn hringir() { bar().await; } viðvörun: ónotað framleiðsla framtíðar skilað af `bar` sem verður að nota —> src/lib.rs:5:5 | 5 | bar().bíða; | ^^^^^^^^^^^^ | = athugið: `#[warn(unused_must_use)]` á sjálfgefið
  • Útfærsla FIFO biðraða std::sync::mpsc (fjölframleiðenda einn neytandi) hefur verið uppfærð, sem hefur verið skipt yfir í að nota crossbeam-rásareininguna á meðan fyrri API er viðhaldið. Nýja útfærslan einkennist af því að leysa fjölda vandamála, meiri afköst og einfalda kóðaviðhald.
  • Nýr hluti af API hefur verið færður í flokkinn stöðugt, þar með talið aðferðir og útfærslur á eiginleikum hafa verið stöðugar:
    • {heiltal}::checked_ilog
    • {heiltal}::checked_ilog2
    • {heiltal}::checked_ilog10
    • {heiltala}::ilog
    • {heiltala}::ilog2
    • {heiltala}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • "const" eigindin, sem ákvarðar möguleikann á að nota hann í hvaða samhengi sem er í stað fasta, er notaður í föllum:
    • bleikja::frá_u32
    • bleikja::frá_staf
    • bleikja::to_digit
    • kjarni::bleikju::frá_u32
    • kjarni::bleikju::frá_staf
  • Þriðja stig stuðnings hefur verið innleitt fyrir notkun Rust í Linux kjarnanum (linuxkernel), sem og fyrir Sony PlayStation 1 (mipsel-sony-psx), PowerPC með AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) palla qnx710, x86_64-pc-nto-qnx710). Þriðja stigið felur í sér grunnstuðning, en án sjálfvirkra prófana, birtingu opinberra smíðna og sannprófun á byggingarhæfni kóða.

Að auki getum við tekið eftir útgáfu ARM á plástra sem leyfa notkun Rust tungumálsins til að þróa rekla og Linux kjarnaeiningar sem eru settar saman fyrir kerfi byggð á AArch64 arkitektúr.

Heimild: opennet.ru

Bæta við athugasemd