U publikua versioni i gjuhës së programimit Rust 1.52, i bazuar në projektin Mozilla, por tani zhvillohet nën mbështetje të organizatës së pavarur jo-fitimprurëse Rust Foundation. Gjuha fokusohet në punën e sigurt me memorien, siguron menaxhim automatike të memorjes dhe ofron mjete për arritjen e një paralelizmi të lartë në ekzekutimin e detyrave, duke shmangur përdorimin e mbledhësit të plehrave dhe runtime (runtime reduktohet në inicializimin bazë dhe mbështetje për bibliotekën standarde).
Menaxhimi automatik i memories në Rust e shpëton zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbron nga probleme që lindin nga puna në nivel të ulët me memorien, si aksesimi në një zonë të memories pas çlirimit të saj, dereferimi i treguesve nul, dalja jashtë kufijve të buffers dhe të tjerë. Për shpërndarjen e bibliotekave, sigurinë e ndërtimit dhe menaxhimin e varësive, projekti zhvillon menaxherin e pakove Cargo. Për hostimin e bibliotekave, mbështetet repozitari crates.io.
TĂ« rejat kryesore:
- ĂshtĂ« hequr lidhja me rendin e ekzekutimit tĂ« komandave "cargo check" dhe "cargo clippy". MĂ« parĂ«, thirrja "cargo clippy" pas "cargo check" nuk sillte fillimin e utilitarit clippy (linter) pĂ«r shkak tĂ« mungesĂ«s sĂ« ndarjes sĂ« cache pĂ«r kĂ«to moda verifikimi. Tani kjo problem Ă«shtĂ« zgjidhur dhe rendi i thirrjes "cargo clippy" dhe "cargo check" ka humbur rĂ«ndĂ«sinĂ«.
- Një grup i ri API-sh është transferuar në klasën e stabilizuar, duke përfshirë stabilizimin e metodave:
- Arguments::as_str
- char::MAX
- char::REPLACEMENT_CHARACTER
- char::UNICODE_VERSION
- char::decode_utf16
- char::from_digit
- char::from_u32_unchecked
- char::from_u32
- slice::partition_point
- str::rsplit_once
- str::split_once
- Tregu «const», që përcakton mundësinë e përdorimit në çdo kontekst në vend të konstantave, aplikohet në metodat:
- char::len_utf8
- char::len_utf16
- char::to_ascii_uppercase
- char::to_ascii_lowercase
- char::eq_ignore_ascii_case
- u8::to_ascii_uppercase
- u8::to_ascii_lowercase
- u8::eq_ignore_ascii_case
- Shtohet kontrolli lint i unsafe_op_in_unsafe_fn për të përcaktuar inkuadrimin e kodit unsafe të përdorur në funksionet unsafe.
- Lejohet konvertimi i treguesve mutable në vargje në formën e treguesve për llojin të cilit i përket elementi i vargut. let mut x: [usize; 2] = [0, 0]; let p = &mut x si *mut usize; let p = &mut x si *const usize;
- Në clippy (linter) janë shtuar 9 kontrolle të reja.
- Në menaxherin e paketave cargo për paketat është implementuar mbështetje për fushën «manifest_path» në JSON. Në depozitën crates.io është shtuar mbështetje për specifikimin e informacionit mbi licencat në formatin SPDX 3.11.
- Lejohet specifikimi i disa filtrave gjatĂ« ekzekutimit tĂ« testeve, pĂ«r shembull, ekzekutimi i «cargo test â foo bar» do tĂ« ekzekutojĂ« tĂ« gjitha testet qĂ« pĂ«rputhen me maskat «foo» dhe «bar».
- Mjetet LLVM që përdoren si parazgjedhje janë azhurnuar në versionin LLVM 12.
- U realizua niveli i tretë i mbështetjes për platformat s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl dhe powerpc-unknown-openbsd. Niveli i tretë parashikon mbështetje bazike, por pa testimin automatizuar, publikimin e ndërtimeve zyrtare dhe verifikimin e mundësisë për ndërtimin e kodit.
Burimi: opennet.ru
