Rust 1.68 forritunarmálsútgáfa

Útgáfa Rust 1.68 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:

  • Cargo pakkastjórinn og crates.io geymslan hafa stöðugt stuðning við Sparse samskiptareglur, sem skilgreinir nýja vinnuaðferð með vísitölu sem endurspeglar tiltækar útgáfur allra pakka sem eru til í geymslunni. Nýja samskiptareglan gerir þér kleift að auka verulega hraða vinnu með crates.io og leysa stærðarvandamál með frekari aukningu á fjölda pakka í geymslunni.

    Til að draga úr töfum af völdum niðurhals á fullri vísitölu, felur Sparse í stað þess að fá aðgang að vísitölunni með Git beint niðurhali yfir HTTPS aðeins nauðsynlegum vísitölugögnum, sem ná yfir ósjálfstæði tiltekins verkefnis. Ný þjónusta, index.crates.io, er notuð til að veita vísitölugögn. Sjálfgefið er að nýja samskiptareglan sé notuð í Rust 1.70 útibúinu, og áður en það, til að virkja hana, geturðu stillt umhverfisbreytuna „CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse“ eða bætt „protocol =“ færibreytunni við „[skrár. crates-io]" hluta .cargo/config.toml skráarinnar 'sparse'.

  • Bætti við „pinna!“ fjölva, sem gerir þér kleift að búa til Pin<&mut T> uppbyggingu úr orðatiltækinu „T“ með staðbundinni festingu á ástandi þess (ólíkt Box::pin, úthlutar það ekki minni á hrúguna, heldur bindur á staflastigi).
  • Stungið hefur verið upp á sjálfgefna minnisúthlutunarvillu sem notaður er þegar venjulegur úthlutunarpakki er notaður. Forrit sem aðeins virkja úthlutun (án std) munu nú kalla á „panic!“ meðhöndlunina þegar minnisúthlutun mistekst, sem mögulega er hægt að stöðva með því að nota „#[panic_handler]“. Forrit sem nota std bókasafnið munu halda áfram að prenta villuupplýsingar til stderr og hrynja.
  • 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:
    • {kjarna,std}::pin::pin!
    • impl Frá fyrir {f32,f64}
    • std::slóð::MAIN_SEPARATOR_STR
    • impl DerefMut fyrir PathBuf
  • „const“ eigindin, sem ákvarðar möguleikann á að nota hann í hvaða samhengi sem er í stað fasta, er notaður í VecDeque::new fallinu.
  • Til að vinna á Android pallinum þarf nú að minnsta kosti NDK r25 (API 19), þ.e. Lágmarks studd Android útgáfa hefur verið hækkuð í 4.4 (KitKat).
  • Þriðja stig stuðnings hefur verið innleitt fyrir Sony PlayStation Vita pallinn (armv7-sony-vita-newlibeabihf). Þ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