ĂshtĂ« publikuar lĂ«shimi i gjuhĂ«s sĂ« programimit Rust 1.90, e cila fillimisht ishte njĂ« projekt i Mozilla, por tani zhvillohet nĂ«n mbikĂ«qyrjen e organizatĂ«s sĂ« pavarur jofitimprurĂ«se Rust Foundation. Gjuha fokusohet nĂ« sigurimin e menaxhimit tĂ« memories dhe ofron mjete pĂ«r arritjen e paralelizmit tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke u shmangur nga pĂ«rdorimi i mbledhĂ«sit tĂ« plehrave dhe runtime (runtime pĂ«rfshin vetĂ«m inicializimin bazĂ« dhe mbĂ«shtetje pĂ«r bibliotekĂ«n 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ë Linux, në kompjuterët me arkitekturën x86_64, për lidhjen dinamike të paketave crate, standardi përdor lidhësin LLD nga projekti LLVM. Përdorimi i LLD, krahasuar me lidhësin BFD, ka sjellë përmirësime në performancën e lidhjes së skedarëve ekzekutivë të mëdhenj dhe projekteve me sasi të mëdha informacioni ndihmës, si dhe ka përshpejtuar rindërtimin inkremental. Në shumicën e rasteve, LLD është përputhshëm me BFD. Në rast se ndodhin probleme, mund të riktheheni te BFD duke specifikuar në variablin e mjedisit RUSTFLAGS flamurin «-C linker-features=-lld» ose duke e shtuar në skedarin e konfigurimit .cargo/config.toml: [target.x86_64-unknown-linux-gnu] rustflags = [«-Clinker-features=-lld»]
- NĂ« menaxherin e paketave cargo, ekipi «publish» ka njĂ« opsion «âworkspace», i cili lejon publikimin automatik tĂ« tĂ« gjitha pakove nga hapĂ«sira e punĂ«s tĂ« zgjedhur (njĂ« grup paketash qĂ« pĂ«rdor njĂ« skedar Cargo.lock dhe njĂ« katalog tĂ« pĂ«rbashkĂ«t tĂ« rezultateve tĂ« ndĂ«rtimit), duke ruajtur rendin e paketave dhe duke marrĂ« parasysh varĂ«sitĂ« midis tyre.
- Një sasi e re API është kaluar në kategorinë stabile, përfshirë stabilizimin e metodave dhe implementimeve të tipazheve:
- u{n}::checked_sub_signed
- u{n}::overflowing_sub_signed
- u{n}::saturating_sub_signed
- u{n}::wrapping_sub_signed
- impl Copy për IntErrorKind
- impl Hash për IntErrorKind
- impl PartialEq për CStr
- impl PartialEq për CStr
- impl PartialEq<Cow> për CStr
- impl PartialEq për CString
- impl PartialEq për CString
- impl PartialEq<Cow> për CString
- impl PartialEq për Cow
- impl PartialEq për Cow
- impl PartialEq për Cow
- T symboli «const» është aplikuar në funksionet:
- ::reverse
- f32::floor
- f32::ceil
- f32::trunc
- f32::fract
- f32::round
- f32::round_ties_even
- f64::floor
- f64::ceil
- f64::trunc
- f64::fract
- f64::round
- f64::round_ties_even
- Për platformat e synuara mbi bibliotekën Musl, të cilat janë në nivelin e tretë të mbështetjes, lidhja dinamike është e përfshirë si standard: mips64-unknown-linux-muslabi64, powerpc64-unknown-linux-musl, powerpc-unknown-linux-musl, powerpc-unknown-linux-muslspe, riscv32gc-unknown-linux-musl, s390x-unknown-linux-musl dhe thumbv7neon-unknown-linux-musleabihf.
- Platforma e synuar «x86_64-apple-darwin» Ă«shtĂ« kaluar nga niveli i parĂ« i mbĂ«shtetjes nĂ« tĂ« dytin (Apple planifikon tĂ« ndalojĂ« mbĂ«shtetje pĂ«r arkitekturĂ«n x86_64). Niveli i parĂ« i mbĂ«shtetjes nĂ«nkupton formimin e ndĂ«rtimeve binare, kryerjen e testeve tĂ« detajuara dhe ofrimin e mbĂ«shtetjes mĂ« tĂ« lartĂ« pĂ«r platformĂ«n â çdo ndryshim nĂ« kompilator kontrollohet me ekzekutimin e njĂ« grupi tĂ« plotĂ« testesh. Niveli i dytĂ« i mbĂ«shtetjes nĂ«nkupton garantimin e ndĂ«rtimit, por pa garantira gjatĂ« kalimit tĂ« grupit tĂ« testeve.
Në mënyrë të veçantë, duhet të theksohet zhvillimi nga kompania Microsoft e mjeteve për zhvillimin e drejtorive të Windows në gjuhën Rust. Në GitHub është publikuar një grup paketash crate për krijimin e drejtorive mbi bazën e WDM (Windows Driver Kit), KMDF (Kernel-Mode Driver Framework) dhe UMDF (User-Mode Driver Framework), si dhe shërbimeve Win32, të cilat janë të përshtatshme për përdorim në Windows 11. Qëllimi i projektit është ofrimi për zhvilluesit që përdorin gjuhën Rust të bibliotekave dhe funksioneve, të ngjashme me ato që ofrohen në mjetet WDK për zhvillimin e drejtorive në gjuhën C. Në këtë fazë, mjetet e zhvillimit të drejtorive në Rust përdorin një numër të madh thirrjesh unsafe gjatë ndërveprimit me nën-sistemet e Windows, por në të ardhmen planifikohet të përgatiten abstraksione të sigurta për strukturat e bërthamës dhe DDI (Device Driver Interface). Produktet e projektit shpërndahen nën licencat MIT dhe Apache 2.0.
Burimi: opennet.ru
