Publikimi i gjuhës programuese Rust 1.62

Gjuha e programimit për qëllime të përgjithshme Rust 1.62, e themeluar nga projekti Mozilla, por tani e zhvilluar nën kujdesin e organizatës së pavarur jofitimprurëse Rust Foundation, është publikuar. Gjuha fokusohet në sigurinë e kujtesës dhe siguron mjetet për të arritur paralelizëm të lartë të punës duke shmangur përdorimin e një grumbulluesi të mbeturinave dhe kohën e funksionimit (koha e funksionimit reduktohet në inicializimin bazë dhe mirëmbajtjen e bibliotekës standarde).

Metodat e trajtimit të memories Rust e ruajnë zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbrojnë nga problemet që lindin për shkak të trajtimit të nivelit të ulët të kujtesës, të tilla si qasja në një zonë memorie pasi të jetë liruar, mosreferencimi i treguesve null, tejkalimet e buferit, etj. Për të shpërndarë bibliotekat, për të ofruar ndërtime dhe për të menaxhuar varësitë, projekti zhvillon menaxherin e paketave Cargo. Depoja e crates.io mbështetet për pritjen e bibliotekave.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmës së pronësisë së objektit, mbajtjes së gjurmëve të jetëgjatësisë së objektit (scopes) dhe vlerësimit të saktësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Risitë kryesore:

  • Menaxheri i paketave "cargo" ofron komandĂ«n "shto", e cila ju lejon tĂ« shtoni varĂ«si tĂ« reja nĂ« manifestin Cargo.toml ose tĂ« ndryshoni varĂ«sitĂ« ekzistuese nga linja e komandĂ«s. Komanda gjithashtu ju lejon tĂ« specifikoni veçori dhe versione individuale, pĂ«r shembull: ngarkesa shtoni serde — veçoritĂ« nxjerrin ngarkesĂ«n shtoni nom@5
  • U shtua aftĂ«sia pĂ«r tĂ« pĂ«rdorur "#[derive(Default)]" me numra nĂ« tĂ« cilĂ«t opsioni i paracaktuar pĂ«rcaktohet duke pĂ«rdorur atributin "#[default]". #[rrjedh (e parazgjedhur)] enum Ndoshta { #[e parazgjedhur] AsgjĂ«, Diçka (T), }
  • NĂ« platformĂ« Linux PĂ«rdoret njĂ« implementim mĂ« kompakt dhe mĂ« i shpejtĂ« i mekanizmit tĂ« sinkronizimit Mutex, bazuar nĂ« pĂ«rdorimin e futex-eve tĂ« ofruara nga kerneli. LinuxNdryshe nga implementimi i pĂ«rdorur mĂ« parĂ« i bazuar nĂ« bibliotekĂ«n pthreads, versioni i ri pĂ«rdor vetĂ«m 5 bajt pĂ«r tĂ« ruajtur gjendjen Mutex nĂ« vend tĂ« 40. NĂ« mĂ«nyrĂ« tĂ« ngjashme, mekanizmat e kyçjes Condvar dhe RwLock janĂ« migruar nĂ« futex.
  • ËshtĂ« zbatuar njĂ« nivel i dytĂ« i mbĂ«shtetjes pĂ«r platformĂ«n e synuar x86_64-unknown-none, i krijuar pĂ«r tĂ« gjeneruar skedarĂ« tĂ« ekzekutueshĂ«m qĂ« mund tĂ« funksionojnĂ« pa njĂ« sistem operativ. PĂ«r shembull, platforma e specifikuar e synuar mund tĂ« pĂ«rdoret kur shkruani komponentĂ«t e kernelit. Niveli i dytĂ« i mbĂ«shtetjes pĂ«rfshin njĂ« garanci montimi.
  • Niveli i tretĂ« i mbĂ«shtetjes Ă«shtĂ« zbatuar pĂ«r platformat aarch64-pc-windows-gnullvm dhe x86_64-pc-windows-gnullvm. Niveli i tretĂ« pĂ«rfshin mbĂ«shtetjen bazĂ«, por pa testim tĂ« automatizuar, publikim tĂ« ndĂ«rtimeve zyrtare ose kontrollim nĂ«se kodi mund tĂ« ndĂ«rtohet.
  • NjĂ« pjesĂ« e re e API-sĂ« Ă«shtĂ« zhvendosur nĂ« kategorinĂ« e qĂ«ndrueshme, duke pĂ«rfshirĂ« metodat dhe implementimet e tipareve janĂ« stabilizuar:
    • bool::pastaj_disa
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::linja
    • windows::CommandExt::raw_arg
    • implikoj vlera e paracaktuar pĂ«r AssertUnwindSafe
    • Nga > pĂ«r Rc
    • Nga > pĂ«r Arc<[u8]>
    • FusedIterator pĂ«r EncodeWide

    Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster