ĂshtĂ« publikuar njĂ« version i ri i gjuhĂ«s sĂ« programimit Rust 1.69, fillimisht i zhvilluar nga Mozilla, por tani nĂ«n mbikĂ«qyrjen e organizatĂ«s jo-fitimprurĂ«se Rust Foundation. Gjuha fokusohet nĂ« sigurinĂ« e punĂ«s me memorjen dhe ofron mjete pĂ«r arritjen e njĂ« paralelizmi tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke shmangur pĂ«rdorimin e mbledhĂ«sit tĂ« mbetjeve dhe runtime (runtime pĂ«rmbledh ndihmĂ«n themelore tĂ« inicializimit dhe mbĂ«shtetjes sĂ« 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Ă« implementuar identifikimi i paralajmĂ«rimeve qĂ« mund tĂ« zgjidhen automatikisht, si dhe rekomandime pĂ«r ekzekutimin e «cargo fix» ose «cargo clippy âfix». warning: import i papĂ«rdorur: âstd::hash::Hashâ â> src/main.rs:1:5 | 1 | use std::hash::Hash; | ^^^^^^^^^^^^^^^ | = note: â#[warn(unused_imports)]â Ă«shtĂ« ndarĂ« automatikisht warning: âfooâ (bin «foo») ka gjeneruar 1 paralajmĂ«rim (ekzekutoni âcargo fix âbin «foo»â pĂ«r tĂ« aplikuar 1 sugjerim)
- Në Cargo është shtuar rekomandimi për përdorimin e komandës «cargo add» gjatë përpjekjes për të instaluar një bibliotekë me komandën «cargo install».
- Për të shkurtuar kohën e kompilimit, është ndërprerë përfshirja e informacionit për debuggim në skenat e ndërtimit. Nëse skenat e ndërtimit përfundojnë me sukses, ndryshimi nuk do të sjellë ndonjë dallim të dukshëm, por në rast të dështimeve, dump me gjurmë të prapme do të përmbajë më pak informacion. Për të rikthyer sjelljen e vjetër, duhet të shtoni në Cargo.toml: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- Një sasi e re API është kaluar në kategorinë stabile, përfshirë stabilizimin e metodave dhe implementimeve të tipazheve:
- CStr::from_bytes_until_nul
- core::ffi::FromBytesUntilNulError
- Karakteristika «const», që përcakton mundësinë e përdorimit në çdo kontekst në vend të konstantave, është aplikuar në funksionet:
- SocketAddr::new
- SocketAddr::ip
- SocketAddr::port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::new
- SocketAddrV4::ip
- SocketAddrV4::port
- SocketAddrV6::new
- SocketAddrV6::ip
- SocketAddrV6::port
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- ĂshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« flag-Ă«ve true dhe false nĂ« argumentet e kompilatorit.
Burimi: opennet.ru
