Ăndrr kondita e programimit Rust 1.54 Ă«shtĂ« publikuar, e cila Ă«shtĂ« zhvilluar fillimisht nga projekti Mozilla, por tani Ă«shtĂ« duke u zhvilluar nĂ«n mbikĂ«qyrjen e njĂ« organizate tĂ« pavarur dhe joqeveritare, Rust Foundation. Gjuha fokusohet nĂ« menaxhimin e sigurt tĂ« memories, ofron menaxhim automatik tĂ« memories dhe siguron 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 themelor dhe mbĂ«shtetje tĂ« bibliotekĂ«s 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Ă« shtuar mundĂ«sia e pĂ«rdorimit tĂ« brendshĂ«m nĂ« atributet e makros, qĂ« duken si funksione (makro procedurale dhe makro tĂ« krijuara me makron «macro_rules!»). KĂ«to makros dallohen nga funksionet me simbolin «!» pas emrit (macro!(âŠ)) dhe zĂ«vendĂ«simin e tekstit tĂ« origjinĂ«s sĂ« makros nĂ« vend tĂ« krijimit tĂ« thirrjes sĂ« funksionit. Thirrja e makros brenda atyre atributeve mund tĂ« jetĂ« e dobishme pĂ«r tĂ« pĂ«rfshirĂ« pĂ«rmbajtje nga skedarĂ« tĂ« tjerĂ« nĂ« komente dokumentuese. PĂ«r shembull, pĂ«r tĂ« futur pĂ«rmbajtjen e skedarit README dhe rezultatin e ekzekutimit tĂ« skriptit, mund tĂ« specifikohet: #![doc = include_str!(«README.md»)] #[path = concat!(env!(«OUT_DIR»), «/generated.rs»)] mod generated;
- Funksionet e ndërtuara në kompilator (Intrinsics) për platformën wasm32 janë stabilizuar, duke lejuar përdorimin e instruksioneve SIMD në WebAssembly. Shumica e funksioneve, si v128_bitselect, janë të disponueshme në modin «safe», por disa funksione që punojnë me tregues (p.sh., v128_load) mbeten «unsafe».
- ĂshtĂ« rikthyer aplikimi i parazgjedhur i kompilimit inkremental, qĂ« lejon rikompilimin vetĂ«m tĂ« pjesĂ«ve tĂ« kodit qĂ« kanĂ« ndryshuar, duke e lejuar kĂ«shtu tĂ« reduktohet ndjeshĂ«m koha e ndĂ«rtimit tĂ« projektit pas rikompilimeve pas ndryshimeve tĂ« vogla. Kompilimi inkremental ishte çaktivizuar nĂ« versionin 1.52.1 pĂ«r shkak tĂ« zbulimit tĂ« gabimeve tĂ« fshehura qĂ« u shfaqĂ«n pas shtimit tĂ« verifikimeve tĂ« tjera pĂ«r ngarkimin e tĂ« dhĂ«nave nga memoria e diskut.
- Një grup i ri i API-ve është kaluar në statusin stabil, përfshirë stabilizimin e:
- BTreeMap::into_keys
- BTreeMap::into_values
- HashMap::into_keys
- HashMap::into_values
- arch::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point
Burimi: opennet.ru
