Rust 1.99.0 kom út. Microsoft gerði Rust að aðalforritunarmáli

Forritunarmálið Rust 1.99, sem var stofnað af Mozilla verkefninu en nú þróað undir verndarvæng hins óháða, hagnaðarlausa Rust Foundation, hefur verið gefið út. Tungumálið leggur áherslu á minnisöryggi og býður upp á verkfæri til að ná mikilli samsíða verkefnaframkvæmd, án þess að nota ruslsafnara og keyrslutíma (keyrslutíminn er styttur í grunn frumstillingu og viðhald á staðlaða bókasafninu).

Aðferðir Rust við minnisstjórnun eru hannaðar til að útrýma villum í meðhöndlun bendla og vernda gegn vandamálum sem stafa af lágstigs minnisstjórnun, svo sem aðgangi að minni eftir að það hefur verið losað, afvísun á núllbendum, ofhleðslu á biðminni og svo framvegis. Verkefnið er að þróa Cargo pakkastjórann til að dreifa bókasöfnum, auðvelda smíði og stjórna ósjálfstæði. Geymslan crates.io er viðhaldið 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:

  • Rust gerir þér nú kleift að búa til breytileg föll sem eru flutt út fyrir köll frá C verkefnum (C ABI). Síðasta þátturinn í breytulistanum í slíkum föllum getur verið "..." smíðin, sem er meðhöndluð í Rust með sérstakri gerð, VaList, sem virkar svipað og va_list í C. unsafe extern "C" fn sum(mut args: ...) -> i32 { let a = unsafe { args.next_arg:: () }; látum b = óöruggt { args.next_arg::} () }; a + b } fn foo() -> i32 { óöruggt { summa(0i32, 2i32) } }
  • Föllin Layout::for_value_raw, mem::size_of_val_raw og mem::align_of_val_raw hafa verið stöðuguð til að leyfa örugga stærðarbreytingu og röðun hrárra bendla, þar á meðal þegar notaðar eru breytilegar stærðir eins og sneiðar, án þess að þurfa að búa til gagnatilvísanir.
  • Í skjöluninni er nú mælt með því að forðast sé að losa minni sem var statískt vísað til með óákveðnum líftíma (&'static) með kalli á Box::leak (fram- og afturleiðsla afleka), þar sem þessi aðgerð gæti hugsanlega leitt til vandamála vegna ósamrýmanleika við framtíðar þýðendabestun og tengibúnað fyrir minnisúthlutun. Í stað þess að búa til statíska tilvísun fyrir tímabundna eignarhaldsflutninga er mælt með því að nota hráar bendla, til dæmis með kalli á Box::into_non_null.
  • 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:
    • IntoIterator fyrir kassa<[T; N]>
    • IntoIterator fyrir &Box<[T; N]>
    • IntoIterator fyrir &mut Box<[T; N]>
    • VecDeque::retain_back
    • kjarna::ffi::VaList
    • Box::into_non_null
    • Kassi::frá_ekki_núll
    • Vec::into_parts
    • Vec::from_parts
    • kjarna::mem::stærð_af_gildi_hráefnis
    • kjarna::mem::align_of_val_raw
    • kjarna::alloc::Layout::for_value_raw
    • Strengur::from_utf8_lossy_owned
    • strengur::FromUtf8Error::into_utf8_lossy
    • FusedIterator fyrir StepBy
    • std::fs::set_times
    • std::fs::set_times_nofollow
  • Pakkastjórinn fyrir farm býður nú upp á nýjan innbyggðan „kembunar“ prófíl, svipaðan og „dev“ prófílnum (kembunar- og þróunarmöguleikar eru áætlaðir að aðskiljast í framtíðinni). Stigvaxandi samantekt er sjálfkrafa óvirk þegar smíðað er í CI.
  • Markvettvangurinn riscv64-unknown-linux-musl hefur verið færður á stuðningsstig 2, sem veitir ábyrgð á smíði en enga ábyrgð á að prófunarpakkinn standist það.

Að auki viljum við vekja athygli á nýlega tilkynntum verkefnum og viðburðum sem tengjast Rust:

  • Microsoft hefur uppfært Rust í Tier 1 forritunarmál og mun veita því fullan stuðning á öllum stigum þróunar innan fyrirtækisins. Áður var Tier 1 stuðningur veittur fyrir C++, C# og TypeScript. Rust er þegar notað í yfir 100 hugbúnaðargeymslum Microsoft. Meðal annars eru Rust íhlutir þegar notaðir í vörum eins og Microsoft 365 og Copilot, og sérstakt bakendi fyrir Rust, rustc_codegen_utc, byggt á rustc þýðandanum, hefur verið þróað fyrir MSVC þýðandann.

    Microsoft nefnir aðalmarkmið þess að nota Rust til að styrkja öryggisgagnrýninn kóða. Samkvæmt tæknistjóra Microsoft Azure eru um það bil 70% allra veikleika í ... Windows eru af völdum minnisstjórnunarvandamála sem hægt er að forðast með því að nota Rust.

  • Google hefur fjarlægt það úr kjarnanum. Linux Gamla Binder IPC útfærslan, sem var skrifuð í C, hefur verið úrelt og nýr Binder IPC rekill hefur verið endurskrifaður í Rust. Það skal tekið fram að á þeim 15 árum sem gamli rekillinn hefur safnað saman verulegum tæknilegum skuldum og fjölmörgum fylgikvillum sem hafa hindrað villugreiningu, viðhald og viðbót nýrra eiginleika. Binder IPC rekillinn í Rust hefur verið skilgreindur sem aðal rekill og er ekki lengur kynntur sem tilraunaþróun.
  • Arti 2.7.0, Rust-útfærsla af Tor-verkfærakistunni, hefur verið gefin út. Þegar kóðagrunnur Arti nær því stigi að hann geti komið í stað C-útfærslunnar að fullu, hyggjast Tor-forritararnir gera Arti að aðalútfærslu Tor og smám saman hætta viðhaldi á C-útfærslunni. Nýja útgáfan inniheldur virkniþróun fyrir miðla og ... netþjónum Virkni skráarheimildar (DA) sem tengist greiningu skjala, stuðningi við speglun skráarþjóna og vinnslu DNS-umferðar. RPC-útfærsla fyrir stillingarbreytingar og athuganir hefur verið bætt við. Nokkrum veikleikum hefur verið lagað — stjórnendum onion-þjónustu er bent á að uppfæra kerfi sín tafarlaust.

Heimild: opennet.ru

Kauptu áreiðanlega hýsingu fyrir síður með DDoS vernd, VPS VDS netþjónum 🔥 Kauptu áreiðanlega vefhýsingu með DDoS vörn, VPS VDS netþjónum | ProHoster