Lëshimi i gjuhës së programimit Rust 1.76

ËshtĂ« publikuar njĂ« lançim i gjuhĂ«s sĂ« programimit tĂ« pĂ«rgjithshĂ«m Rust 1.76, tĂ« cilin e zhvillon Mozilla, por tani po zhvillohet nĂ«n mbikĂ«qyrjen e njĂ« organizate tĂ« pavarur jofitimprurĂ«se, Rust Foundation. Gjuha fokusohet nĂ« punĂ«n e sigurt me_memorinĂ« dhe ofron mjete pĂ«r tĂ« arritur njĂ« paralelizĂ«m tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke u shmangur pĂ«rdorimit tĂ« mbledhĂ«sve tĂ« plehrave dhe runtime (runtime pĂ«rbĂ«het nga inicializimi bazĂ« dhe mbĂ«shtetje e bibliotekĂ«s standarde).

Metodat e punës me kujtesën në Rust e çlirojnë zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbrojnë nga problemet që lindin nga puna me nivel të ulët me kujtesën, siç janë referimi në një zonë kujtese pas çlirimit të saj, dereferimi i treguesve null, tejkalimi i kufijve të tamponëve etj. Për shpërndarjen e biblioteka, për të siguruar ndërtimin dhe menaxhimin e varësive, projekti zhvillon menaxherin e paketave Cargo. Për ruajtjen e bibliotekave, mbështetet depoja crates.io.

Përdorimi i sigurt i memories sigurohet në Rust gjatë kompilimit përmes verifikimit të lidhjeve, gjurmimit të pronësisë së objekteve, përllogaritjes së kohëzgjatjes së objekteve (fushave të dukshmërisë) dhe vlerësimit të saktësisë së qasjes në memorie gjatë ekzekutimit të kodit. Rust gjithashtu ofron mjete për mbrojtje nga tejkalimet e numrave të plotë, kërkon inicializim të detyrueshëm të vlerave të variablave para përdorimit, menaxhon më mirë gabimet në bibliotekën standarde, aplikon konceptin e lidhjeve dhe variablave të pandryshueshëm (immutable) si parazgjedhje, dhe ofron tipizim të fortë statik për minimizimin e gabimeve logjike.

TĂ« rejat kryesore:

  • Dokumentacioni ka njĂ« seksion tĂ« veçantĂ« qĂ« pĂ«rshkruan pajtueshmĂ«rinĂ« e llojeve tĂ« ndryshme tĂ« argumenteve dhe tipo tĂ« vlerave tĂ« kthimit tĂ« funksioneve nĂ« nivelin ABI. Krahasuar me versionet e mĂ«parshme, Ă«shtĂ« garantuar pajtueshmĂ«ria nĂ« nivelin ABI tĂ« tipave "char" dhe "u32", tĂ« cilĂ«t kanĂ« pĂ«rmasat dhe pĂ«rputhjen e njĂ«jtĂ«.
  • PĂ«rveç thirrjes sĂ« mĂ«parshme "any::type_name::()", e cila kthen njĂ« pĂ«rshkrim tekstual pĂ«r llojin e specifikuar nĂ« parametrin "T", Ă«shtĂ« shtuar funksioni "type_name_of_val(&T)", i cili lejon marrjen e informacionit pĂ«r llojin bazuar nĂ« çdo referencĂ« tĂ« paemĂ«ruar. fn get_iter() -> impl Iterator { [1, 2, 3].into_iter() } fn main() { let iter = get_iter(); let iter_name = std::any::type_name_of_val(&iter); let sum: i32 = iter.sum(); println!("Shuma e `{iter_name}` Ă«shtĂ« {sum}."); } NĂ« daljen do tĂ« kemi: Shuma e `core::array::iter::IntoIter` Ă«shtĂ« 6.
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • Arc::unwrap_or_clone
    • Rc::unwrap_or_clone
    • Result::inspect
    • Result::inspect_err
    • Option::inspect
    • type_name_of_val
    • std::hash::{DefaultHasher, RandomState}
    • ptr::{from_ref, from_mut}
    • ptr::addr_eq
  • ËshtĂ« realizuar njĂ« niveli i tretĂ« mbĂ«shtetje pĂ«r platformat {x86_64,i686}-win7-windows-msvc, aarch64-apple-watchos, arm64e-apple-ios dhe arm64e-apple-darwin. Niveli i tretĂ« nĂ«nkupton mbĂ«shtetje bazike, por pa testim automatizuar, publikim tĂ« ndĂ«rtimeve zyrtare dhe verifikimin e mundĂ«sisĂ« pĂ«r ndĂ«rtimin e kodit.

Një veçori e veçantë është demonstrimi i planifikuesit eksperimental të detyrave scx_rustland, i shkruar në gjuhën Rust dhe ekzekutur në hapësirën e përdoruesit (shkëputja e logjikës së planifikimit të detyrave nga bërthama në hapësirën e përdoruesit është realizuar me ndihmën e veglave sched-ext që përdorin BPF). Planifikuesi është optimizuar për të rritur prioritetin e detyrave interaktive përballë detyrave që ngarkojnë shumë CPU. Për shembull, në provën e nisjes së një aplikacioni lojrash në të njëjtën kohë me montimin e bërthamës, planifikuesi scx_rustland ka lejuar arritjen e një FPS më të lartë në lojë, krahasuar me përdorimin e planifikuesit standard EEVDF.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster