Publikimi i gjuhës programuese Rust 1.54

Është publikuar publikimi i gjuhës programuese të sistemit Rust 1.54, i themeluar nga projekti Mozilla, por tashmë i zhvilluar nën kujdesin e organizatës së pavarur jofitimprurëse Rust Foundation. Gjuha fokusohet në sigurinë e kujtesës, siguron menaxhimin automatik të kujtesës dhe siguron mjetet për të arritur paralelizëm të lartë të detyrave pa përdorur një grumbullues mbeturinash ose kohëzgjatjeje (koha e funksionimit reduktohet në inicializimin bazë dhe mirëmbajtjen e bibliotekës standarde).

Menaxhimi automatik i kujtesës i Rust eliminon gabimet gjatë manipulimit të treguesve dhe mbron nga problemet që lindin nga manipulimi i nivelit të ulët të memories, të tilla si qasja në një rajon memorie pasi të jetë liruar, mosreferencat e treguesit null, tejkalimet e buferit, etj. Për të shpërndarë bibliotekat, për të siguruar montimin dhe për të menaxhuar varësitë, projekti po zhvillon menaxherin e paketave Cargo. Depoja e crates.io mbështetet për pritjen e bibliotekave.

Risitë kryesore:

  • U shtua aftësia për të përdorur makro të ngjashme me funksionet brenda atributeve (makrot dhe makro procedurale të krijuara duke përdorur makro "macro_rules!"). Makro të tilla dallohen nga funksionet me simbolin "!" pas emrit (makro!(...)) dhe zëvendësimi i tekstit burimor makro në vend të gjenerimit të një thirrjeje funksioni. Thirrja e makrove brenda atributeve mund të jetë e dobishme për përfshirjen e përmbajtjes nga skedarët e tjerë në dokumentimin e komenteve. Për shembull, për të futur përmbajtjen e skedarit README dhe rezultatin e ekzekutimit të skriptit, mund të specifikoni: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/generated.rs" )] mod gjeneruar;
  • Funksionet e integruara të përpiluesit (Intrinsics) për platformën wasm32 janë stabilizuar, duke lejuar përdorimin e udhëzimeve SIMD në WebAssembly. Shumica e funksioneve, si v128_bitselect, janë të disponueshme në modalitetin "safe", por disa funksione që punojnë me tregues (për shembull, v128_load) mbeten "të pasigurta".
  • Përdorimi i parazgjedhur i përpilimit në rritje është rikthyer, duke ju lejuar të rindërtoni vetëm pjesët e ndryshuara të kodit, gjë që mund të zvogëlojë ndjeshëm kohën që duhet për të ndërtuar një projekt gjatë ripërpilimit pas kryerjes së ndryshimeve të vogla. Kompilimi në rritje u çaktivizua në versionin 1.52.1 për shkak të gabimeve të fshehura që u shfaqën pas shtimit të një kontrolli shtesë për ngarkimin e të dhënave nga cache e diskut.
  • Një pjesë e re e API-ve është transferuar në kategorinë e qëndrueshme, duke përfshirë të stabilizuarat e mëposhtëm:
      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
  • Opsionet e shtuara në pemën e ngarkesave: “—krasit " për të hequr një paketë nga grafiku i varësisë, "-depth" për të shfaqur vetëm elementë të një niveli të caktuar foleje në pemën e varësisë, "-edges no-proc-macro" për të fshehur varësitë procedurale makro.

Burimi: opennet.ru

Shto një koment