Rust 1.54 programmeerimiskeele väljalase

Ilmus Mozilla projektiga rajatud, kuid nüüdseks sõltumatu mittetulundusühingu Rust Foundation egiidi all arendatud süsteemi programmeerimiskeele Rust 1.54 väljalase. Keel keskendub mälu ohutusele, pakub automaatset mäluhaldust ja pakub vahendeid ülesannete suure paralleelsuse saavutamiseks ilma prügikogujat või käitusaega kasutamata (käitusaeg taandub standardse teegi põhikäivitamise ja hoolduseni).

Rusti automaatne mäluhaldus välistab osutitega manipuleerimisel tekkivad vead ja kaitseb madala tasemega mäluga manipuleerimisest tulenevate probleemide eest, nagu mälupiirkonnale juurdepääs pärast selle vabastamist, null-osuti viited, puhvri ületamised jne. Teekide levitamiseks, komplekteerimise tagamiseks ja sõltuvuste haldamiseks arendatakse projektis Cargo paketihaldurit. Hoidlat crates.io toetatakse teekide majutamiseks.

Peamised uuendused:

  • Lisatud on võimalus kasutada atribuutide sees funktsioonilaadseid makrosid (protseduurimakrod ja makrod, mis on loodud makro_reeglite makro abil). Selliseid makrosid eristab funktsioonidest sümbol "!" pärast nime (makro!(...)) ja asendades funktsioonikutse genereerimise asemel makro lähteteksti. Atribuutide sees makrode kutsumine võib olla kasulik muude failide sisu lisamiseks kommentaaride dokumenteerimisse. Näiteks faili README sisu ja skripti käivitamise tulemuse sisestamiseks saate määrata: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR" "), "/generated.rs" )] mod loodud;
  • Wasm32 platvormi sisseehitatud kompilaatori funktsioonid (intrinsics) on stabiliseeritud, võimaldades WebAssemblys kasutada SIMD juhiseid. Enamik funktsioone, nagu v128_bitselect, on saadaval "turvarežiimis", kuid mõned funktsioonid, mis töötavad osutitega (nt v128_load), jäävad "ebaturvaliseks".
  • Tagasi on naasnud astmelise kompileerimise vaikekasutus, mis võimaldab teil taastada ainult koodi muudetud osi, mis võib pärast väiksemate muudatuste tegemist oluliselt vähendada projekti koostamiseks kuluvat aega. Järkjärguline kompileerimine keelati versioonis 1.52.1 peidetud vigade tõttu, mis ilmnesid pärast täiendava kontrolli lisamist andmete laadimiseks ketta vahemälust.
  • Uus osa API-sid on üle viidud stabiilsesse kategooriasse, sealhulgas järgmised stabiliseeritud:
      BTreeMap::inte_keys
    • BTreeMap::inte_values
    • HashMap::inte_keys
    • HashMap::inte_values
    • arch::wasm32
    • VecDeque::binaarne_otsing
    • VecDeque::binary_search_by
    • VecDeque::binaarne_otsing_võtme järgi
    • VecDeque::partition_point
  • Kaubapuule on lisatud valikud: "-prune " paketi eemaldamiseks sõltuvusgraafikult, "-depth", et kuvada sõltuvuspuus ainult antud pesastustaseme elemendid, "-edges no-proc- makro” protseduuriliste makrode sõltuvuste peitmiseks.

Allikas: opennet.ru

Lisa kommentaar