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
