Rust 1.65 forritunarmálsútgáfa

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

  • Bætti við stuðningi við almennar tengdar gerðir (GAT, Generic Associated Types), sem gera það mögulegt að búa til tegundarsamnefni tengd annarri tegund og leyfa þér að tengja tegundasmiða við eiginleika. eiginleiki Foo { type Bar; }
  • Tjáningin „let ... else“ hefur verið útfærð, sem gerir þér kleift að athuga mynstursamsvörun beint inni í „leta“ tjáningunni og framkvæma handahófskennda kóða ef mynstrið passar ekki. let Ok(count) = u64::from_str(count_str) else { panic!("Get ekki flokkað heiltölu: '{count_str}'"); };
  • Leyfa notkun á brotayfirlýsingu til að fara út úr nafngreindum blokkum of snemma, með því að nota blokkarheitið (merkimiðann) til að auðkenna blokkina sem á að slíta. láta niðurstöðu = 'blokka: { gera_hlut (); if condition_not_met() {brjóttu ‘blokk 1; } gera_næsta_hlut(); if condition_not_met() { brjóta 'blokk 2; } gera_síðasta_hlut(); 3};
  • Fyrir Linux hefur möguleikinn á að vista villuleitarupplýsingar (split-debuginfo), sem áður var aðeins tiltækur fyrir macOS vettvang, verið bætt við. Þegar valmöguleikinn "-Csplit-debuginfo=unpacked" er tilgreindur, verða villuupplýsingar gögn á DWARF sniði vistuð í nokkrar aðskildar hlutaskrár með ".dwo" endingunni. Ef tilgreint er „-Csplit-debuginfo=packed“ verður til einn pakki á „.dwp“ sniði sem inniheldur öll debuginfo gögnin fyrir verkefnið. Til að samþætta debuginfo beint inn í .debug_* hluta ELF-hlutanna geturðu notað "-Csplit-debuginfo=off" valkostinn.
  • 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:
    • std::backtrace::Backtrace
    • Innbundið::as_ref
    • std::io::lesa_í_streng
    • ::cast_mut
    • ::cast_const
  • „const“ eigindin, sem ákvarðar möguleikann á að nota hann í hvaða samhengi sem er í stað fasta, er notaður í föllunum ::offset_from og ::offset_from
  • Sem hluti af lokastigi þess að flytja innleiðingu LSP (Language Server Protocol) samskiptareglur yfir í ryðgreiningartæki, var úreltri útfærslu Rust Language Server (RLS) skipt út fyrir stubbþjón sem gefur út viðvörun með tillögu um að skipta yfir í með því að nota ryðgreiningartæki.
  • Við söfnun er stuðningur við innbyggða dreifingu MIR millikóða virkur, sem flýtir fyrir samantekt dæmigerðra rimlakakka um 3-10%.
  • Til að flýta fyrir áætluðum smíðum sér farmpakkastjórinn til að flokka störf sem bíða framkvæmd í biðröðinni.

Að auki geturðu tekið eftir viðtalinu um notkun Rust tungumálsins hjá Volvo til að þróa íhluti upplýsingakerfa fyrir bíla. Engar áætlanir eru um að endurskrifa núverandi og prófaða kóða í Rust, en fyrir nýjan kóða er Rust einn af ákjósanlegustu valkostunum til að bæta gæði með lægri kostnaði. Vinnuhópar sem tengjast notkun Rust tungumálsins hafa einnig verið stofnaðir í bílasamtökunum AUTOSAR (AUTomotive Open System ARchitecture) og SAE (Society of Automotive Engineers).

Að auki talaði David Kleidermacher, varaforseti verkfræðideildar Google, um þýðingu kóðans sem notaður er í Android pallinum til að stjórna dulkóðunarlyklum yfir í Rust, sem og notkun Rust við innleiðingu DNS yfir HTTPS samskiptareglur í stafla. fyrir UWB-flögur (Ultra-Wideband) og í virtualization ramma (Android Virtualization Framework) sem tengist Tensor G2 flísinni. Nýir staflar fyrir Bluetooth og Wi-Fi, endurskrifaðir í Rust, eru einnig í þróun fyrir Android. Almenn stefna er að efla öryggi smám saman, fyrst með því að breyta viðkvæmustu og mikilvægustu hugbúnaðarhlutunum í Rust, og síðan stækka til annarra tengdra undirkerfa. Á síðasta ári var Rust tungumálið með á listanum yfir tungumál sem leyfð er að þróa Android vettvang.

Heimild: opennet.ru

Bæta við athugasemd