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

ËshtĂ« publikuar njĂ« version i ri i gjuhĂ«s sĂ« programimit tĂ« pĂ«rgjithshĂ«m Rust 1.67, e cila Ă«shtĂ« fillimisht zhvilluar nga Mozilla, por tani Ă«shtĂ« nĂ«n mbĂ«shtetje nga organizata jo-fitimprurĂ«se Rust Foundation. Gjuha Ă«shtĂ« fokusuar nĂ« sigurinĂ« e punĂ«s me memorie dhe ofron mjete pĂ«r tĂ« arritur njĂ« paralelizĂ«m tĂ« lartĂ« nĂ« ekzekutimin e detyrave, pa pĂ«rdorimin e njĂ« menaxheri plakat dhe runtime (runtime reduktohet nĂ« inicializimin bazĂ« 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:

  • PĂ«r funksionet async me Future::Output Ă«shtĂ« realizuar mundĂ«sia pĂ«r tĂ« specifikuar anotacione "#[must_use]", tĂ« cilat pĂ«rfshijnĂ« njĂ« paralajmĂ«rim nĂ« rast se rezultati i kthyer injorohet, duke ndihmuar nĂ« identifikimin e gabimeve tĂ« shkaktuara nga supozimi se funksioni do tĂ« ndryshojĂ« vlerat, nĂ« vend qĂ« tĂ« kthejĂ« njĂ« vlerĂ« tĂ« re. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } warning: output i papĂ«rdorur i tĂ« ardhmes qĂ« kthehet nga `bar` qĂ« duhet tĂ« pĂ«rdoret —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = note: `#[warn(unused_must_use)]` nĂ« mĂ«nyrĂ« default
  • ËshtĂ« pĂ«rmirĂ«suar realizimi i FIFO-radhĂ«ve std::sync::mpsc (multi-producer single-consumer), i cili Ă«shtĂ« kaluar nĂ« pĂ«rdorimin e modulit crossbeam-channel duke mbajtur API-nĂ« e mĂ«parshme. Realizimi i ri karakterizohet nga zgjidhja e disa problemeve, njĂ« performancĂ« mĂ« tĂ« lartĂ« dhe thjeshtim tĂ« mirĂ«mbajtjes sĂ« kodit.
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Karakteristika «const», qĂ« pĂ«rcakton mundĂ«sinĂ« e pĂ«rdorimit nĂ« çdo kontekst nĂ« vend tĂ« konstantave, Ă«shtĂ« aplikuar nĂ« funksionet:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • ËshtĂ« realizuar mbĂ«shtetje e tretĂ« pĂ«r pĂ«rdorimin e Rust nĂ« kernelin Linux (linuxkernel), si dhe pĂ«r platforma Sony PlayStation 1 (mipsel-sony-psx), PowerPC me AIX (powerpc64-ibm-aix), QNX Neutrino RTOS (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Ky nivel i tretĂ« supozon mbĂ«shtetje bazike, por pa testim tĂ« automatizuar, publikimin e ndĂ«rtimeve zyrtare dhe verifikimin e mundĂ«sisĂ« pĂ«r ndĂ«rtimin e kodit.

Gjithashtu, vlen të përmendet publikimi i patches nga kompania ARM, që lejon përdorimin e gjuhës Rust për zhvillimin e drayverëve dhe moduleve të kernelit Linux, të ndërtuar për sisteme të bazuara në arkitekturën AArch64.

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