Rust 1.62 programmeerimiskeele väljalase

Avaldatud on Mozilla projektiga rajatud, kuid nüüdseks sõltumatu mittetulundusühingu Rust Foundation egiidi all välja töötatud üldotstarbelise programmeerimiskeele Rust 1.62 väljalase. Keel keskendub mälu ohutusele ja pakub vahendeid töö kõrge paralleelsuse saavutamiseks, vältides samal ajal prügikoguja ja käitusaja kasutamist (käitusaeg lüheneb standardse teegi põhikäivitamise ja hoolduseni).

Rusti mälukäsitlusmeetodid säästavad arendajat osutitega manipuleerimisel esinevate vigade eest ja kaitsevad madala tasemega mälukäsitluse tõttu tekkivate probleemide eest, nagu mälualale juurdepääs pärast selle vabastamist, nullviidate viitamise tühistamine, puhvri ülekoormus jne. Teekide levitamiseks, järkude pakkumiseks ja sõltuvuste haldamiseks arendab projekt Cargo paketihaldurit. Hoidlat crates.io toetatakse teekide majutamiseks.

Mälu turvalisus on Rustis kompileerimise ajal tagatud viidete kontrollimise, objekti omandiõiguse jälgimise, objektide eluea (ulatuse) jälgimise ja mälule juurdepääsu õigsuse hindamise kaudu koodi täitmise ajal. Rooste pakub ka kaitset täisarvude ületäitumise eest, nõuab muutujate väärtuste kohustuslikku lähtestamist enne kasutamist, käsitleb standardteegi vigu paremini, rakendab vaikimisi muutumatute viidete ja muutujate kontseptsiooni, pakub tugevat staatilist tippimist loogiliste vigade minimeerimiseks.

Peamised uuendused:

  • Paketihaldur “cargo” pakub käsku “add”, mis võimaldab lisada Cargo.toml manifesti uusi sõltuvusi või muuta olemasolevaid sõltuvusi käsurealt. Käsk võimaldab määrata ka üksikuid funktsioone ja versioone, näiteks: cargo add serde —features derive cargo add nom@5
  • Lisati võimalus kasutada atribuuti „#[derive(Default)]” koos loenditega, milles vaikevalik on määratletud atribuudi „#[vaikeseade]” abil. #[tuletada (vaikimisi)] enum Võib-olla { #[vaikimisi] Mitte midagi, midagi (T), }
  • Linuxi platvormil kasutatakse Mutexi sünkroonimismehhanismi kompaktsemat ja kiiremat teostust, mis põhineb Linuxi kerneli pakutavate futexide kasutamisel. Erinevalt varem kasutatud pthreads teegil põhinevast teostusest kasutab uus versioon Mutexi oleku salvestamiseks vaid 5 baiti 40 asemel. Samamoodi on Condvari ja RwLocki lukustusmehhanismid üle viidud futexile.
  • Sihtplatvormi x86_64-unknown-none jaoks on juurutatud teine ​​tugitase, mis on loodud käivitatavate failide genereerimiseks, mis võivad töötada ilma operatsioonisüsteemita. Näiteks saab määratud sihtplatvormi kasutada kerneli komponentide kirjutamisel. Teise taseme tugi hõlmab montaažigarantii.
  • Kolmas tugitase on rakendatud platvormidele aarch64-pc-windows-gnullvm ja x86_64-pc-windows-gnullvm. Kolmas tase hõlmab põhituge, kuid ilma automaatse testimiseta, ametlike järelversioonide avaldamise või koodi loomiseta.
  • API uus osa on viidud stabiilsete kategooriasse, sealhulgas on stabiliseeritud meetodid ja tunnuste rakendused:
    • bool::then_some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin::liinid
    • windows::CommandExt::raw_arg
    • impl AssertUnwindSafe'i vaikeväärtus
    • Alates > Rc jaoks
    • Alates > Arc <[u8]> jaoks
    • FusedIterator EncodeWide jaoks

    Allikas: opennet.ru

Lisa kommentaar