Lançimi i gjuhës së programimit Rust 1.62

Një version i gjuhës së programimit të përgjithshëm Rust 1.62 është publikuar, i cili është zhvilluar fillimisht nga projekti Mozilla, por tani është nën mbikëqyrjen e një organizate jo-fitimprurëse të pavarur, Rust Foundation. Gjuha fokusohet në sigurimin e punës me memorjen dhe ofron mjete për të arritur një paralelizëm të lartë në ekzekutimin e detyrave, pa përdorur mbledhës plehrash ose runtime (runtime reduktohet në inicializimin bazik dhe mbështetje të 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:

  • NĂ« menaxherin e paketave "cargo" Ă«shtĂ« propozuar komanda "add", e cila lejon, nga linja e komandĂ«s, tĂ« shtoni varĂ«si tĂ« reja nĂ« manifestin Cargo.toml ose tĂ« ndryshoni ato ekzistuese. Komanda gjithashtu lejon specifikimin e pronave tĂ« veçanta (feature) dhe versioneve, pĂ«r shembull: cargo add serde —features derive cargo add nom@5
  • Shtuar mundĂ«sia e pĂ«rdorimit tĂ« "#[derive(Default)]" me enumeracione (enum), nĂ« tĂ« cilat me atributin "#[default]" Ă«shtĂ« pĂ«rcaktuar varianti i paracaktuar. #[derive(Default)] enum Maybe { #[default] Nothing, Something(T), }
  • NĂ« platformĂ«n Linux Ă«shtĂ« implementuar njĂ« version mĂ« kompakt dhe tĂ« shpejtĂ« tĂ« mekanizmit tĂ« sinkronizimit Mutex, i bazuar nĂ« pĂ«rdorimin e futex-Ă«ve qĂ« sigurohen nga bĂ«rthama e Linux. NĂ« krahasim me implementimin e mĂ«parshĂ«m tĂ« bazuar nĂ« bibliotekĂ«n pthreads, pĂ«r ruajtjen e gjendjes sĂ« Mutex-it nĂ« kĂ«tĂ« variant tĂ« ri pĂ«rdoren vetĂ«m 5 byte nĂ« vend tĂ« 40. Po ashtu, mekanizmat e bllokimit Condvar dhe RwLock janĂ« transferuar nĂ« futex.
  • ËshtĂ« realizuar niveli i dytĂ« i mbĂ«shtetjes pĂ«r platformĂ«n e destinuar x86_64-unknown-none, e cila Ă«shtĂ« e destinuar pĂ«r formimin e skedarĂ«ve ekzekutivĂ« qĂ« mund tĂ« punojnĂ« pa njĂ« sistem operativ. PĂ«r shembull, kjo platformĂ« e destinuar mund tĂ« pĂ«rdoret pĂ«r tĂ« shkruar komponentĂ« tĂ« bĂ«rthamĂ«s. Niveli i dytĂ« i mbĂ«shtetjes nĂ«nkupton njĂ« garanci ndĂ«rtimi.
  • ËshtĂ« realizuar niveli i tretĂ« i mbĂ«shtetjes pĂ«r platforma aarch64-pc-windows-gnullvm dhe x86_64-pc-windows-gnullvm. Niveli i tretĂ« nĂ«nkupton mbĂ«shtetje bazike, por pa testim automatizuar, publikim tĂ« ndĂ«rtimeve zyrtare dhe verifikimin e mundĂ«sisĂ« sĂ« ndĂ«rtimit tĂ« kodit.
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • bool::then_some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::lines
    • windows::CommandExt::raw_arg
    • impl<T: Default> vlera pĂ«r default pĂ«r AssertUnwindSafe<T>
    • From<Rc<str>> pĂ«r Rc
    • From<Arc<str>> pĂ«r Arc<[u8]>
    • FusedIterator pĂ«r EncodeWide

    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