Rust 1.54 Rilaxx tal-Lingwa ta' Programmazzjoni

Ġie ppubblikat ir-rilaxx tal-lingwa ta 'programmar tas-sistema Rust 1.54, imwaqqfa mill-proġett Mozilla, iżda issa żviluppat taħt l-awspiċi tal-organizzazzjoni indipendenti mingħajr skop ta' qligħ Rust Foundation. Il-lingwa tiffoka fuq is-sigurtà tal-memorja, tipprovdi ġestjoni awtomatika tal-memorja, u tipprovdi l-mezzi biex tikseb paralleliżmu għoli tal-kompitu mingħajr ma tuża kollettur taż-żibel jew runtime (runtime huwa mnaqqas għal inizjalizzazzjoni bażika u manutenzjoni tal-librerija standard).

Il-ġestjoni awtomatika tal-memorja ta 'Rut telimina l-iżbalji meta timmanipula pointers u tipproteġi kontra problemi li jirriżultaw minn manipulazzjoni tal-memorja ta' livell baxx, bħall-aċċess għal reġjun tal-memorja wara li jkun ġie meħlus, dereferences null pointer, buffer overruns, eċċ. Biex iqassam il-libreriji, jiżgura l-assemblaġġ u jimmaniġġja d-dipendenzi, il-proġett qed jiżviluppa l-maniġer tal-pakkett tat-Tagħbija. Ir-repożitorju crates.io huwa appoġġjat għall-hosting tal-libreriji.

Innovazzjonijiet ewlenin:

  • Żid il-ħila li tuża macros bħal funzjoni ġewwa attributi (makros proċedurali u macros maħluqa bl-użu tal-makro "macro_rules!"). Makro bħal dawn huma distinti minn funzjonijiet bis-simbolu "!" wara l-isem (makro!(...)) u tissostitwixxi t-test tas-sors makro minflok ma tiġġenera sejħa tal-funzjoni. Is-sejħa ta' macros fi ħdan l-attributi tista' tkun utli biex jiġi inkluż kontenut minn fajls oħra fid-dokumentazzjoni tal-kummenti. Pereżempju, biex tiddaħħal il-kontenut tal-fajl README u r-riżultat tal-eżekuzzjoni tal-iskript, tista' tispeċifika: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR") "), "/generated.rs" )] mod iġġenerat;
  • Il-funzjonijiet tal-kompilatur inkorporati (Intrinsics) għall-pjattaforma wasm32 ġew stabbilizzati, li jippermettu l-użu ta 'struzzjonijiet SIMD fil-WebAssembly. Ħafna mill-funzjonijiet, bħal v128_bitselect, huma disponibbli fil-modalità "safe", iżda xi funzjonijiet li jaħdmu ma 'pointers (per eżempju, v128_load) jibqgħu "mhux siguri".
  • L-użu default ta 'kumpilazzjoni inkrementali reġa' lura, li jippermettilek li terġa 'tibni biss il-partijiet mibdula tal-kodiċi, li tista' tnaqqas b'mod sinifikanti l-ħin li tieħu biex tibni proġett meta tikkompila mill-ġdid wara li tagħmel bidliet żgħar. Il-kumpilazzjoni inkrementali ġiet diżattivata fir-rilaxx 1.52.1 minħabba bugs moħbija li ħarġu wara li żiedet kontroll addizzjonali għat-tagħbija tad-dejta mill-cache tad-diska.
  • Porzjon ġdid ta' APIs ġie trasferit għall-kategorija stabbli, inkluż dan li ġej stabbilizzat:
      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
  • Għażliet miżjuda għal siġra tal-merkanzija: “—prune " biex tneħħi pakkett mill-graff tad-dipendenza, "-depth" biex turi biss elementi ta 'livell ta' nesting partikolari fis-siġra tad-dipendenza, "-edges no-proc-macro" biex taħbi makrodipendenzi proċedurali.

Sors: opennet.ru

Żid kumment