Rust programmeerimiskeele versioon 1.44

Avaldatud sĂŒsteemse programmeerimise keele vĂ€ljaanne Rust 1.44, mille Mozilla. Keel keskendub mĂ€lu ohutusele, tagab automaatse mĂ€lu juhtimise ja pakub tööde kĂ”rge paralleelsuse saavutamise vahendeid, ilma et oleks vaja prĂŒgikorjajat ja runtime.

Rustis automaatne mĂ€lu haldus vabastab arendaja nĂ€idikutest ja kaitseb madala taseme mĂ€lu kĂ€sitlusega seotud probleemide eest, nagu nĂ€iteks mĂ€lu juurde pÀÀsemine pĂ€rast selle vabastamist, nullnĂ€idikute dereferentsimine, puhverserverist vĂ€lja minemine jne. Teegikogude levitamiseks, koostamise tagamiseks ja sĂ”ltuvuste haldamiseks areneb vĂ€lja pakihaldur. Cargo, mis vĂ”imaldab vajalikke raamatukogusid ĂŒhe klikiga hankida. Raamatukogude paigutamiseks toetatakse hoidlapaiku crates.io.

Uue versiooni vĂ€ljaande teates on Rusti arendajad laskunud poliitikasse ning nĂ€idanud ĂŒles otsustavat keeldumist avaldada Rust 1.44 tĂ€ielikku muudatuste ĂŒlevaadet solidaarsuse mĂ€rgina politseivĂ€givalla vastu protestijatega, mĂ€rkides, et see kĂŒsimus on olulisem kui tehniliste teadmiste vahetus. Peamised uuendused:

  • Pakihaldur Cargo on integreeritud kĂ€sk «cargo tree», mis vĂ€ljastab sĂ”ltuvuste puustruktuuri. Samuti on lisatud valik «—duplicates» («cargo tree -d»), mis vĂ”imaldab hinnata sĂ”ltuvusi erinevates ĂŒhes pakendis olevates versioonides.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [build-dependencies]
    │ │ │ └── version_check v0.1.5
    


  • Mitte rakendusi, mis ei ole seotud std („#![no_std]“), on implementeeritud asĂŒnkroosse programmeerimise meetodite toetus, mis pĂ”hinevad funktsioonil „async“, plokil async move { 
 } ja operaatoril „.await“, mis lihtsustab peamise kĂ€suviimise voolu mittesekkavate töötlejate kirjutamist.
  • Parserisse on lisatud laiendatav skeemi tugi moodulite ieraarsuse mÀÀratlemiseks. NĂ€iteks ei tekita jĂ€rgmine konstruktsioon viga, vaatamata sellele, et moodulit „foo/bar/baz.rs“ tegelikult ei eksisteeri (semestraalselt on konstruktsioon ikkagi kehtetu ja vĂ”ib pĂ”hjustada viga, kuid muutusi saab nĂ€ha ja analĂŒĂŒsida makrode ja tingimuste kompileerimise tasandil):

    #[cfg(FALSE)]
    mod foo {
    mod bar {
    mod baz;
    }
    }

  • Kompaileerijasse rustc on lisatud -C codegen-units lipu kasutamise vĂ”imalus inkrementaalses reĆŸiimis. Catch_unwind'i elluviimine on ĂŒmber töötatud, nĂŒĂŒd ei mĂ”juta see jĂ”udlust, kui â€žĂŒleskeeramise“ (unwinding) protsess on keelatud ja erandeid ei teki.
  • Kolmas tugi on tagatud platvormidele aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos ja x86_64-apple-tvos. Kolmas tase tĂ€hendab baas tuge, kuid ilma automatiseeritud testimise ja ametlike ehituste avaldamiseta.
  • Uue API osa on tĂ”lgitud stabiilsete ridade hulka, sealhulgas on stabiliseeritud
    PathBuf::with_capacity,
    PathBuf::capacity,
    PathBuf::clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout::align_to,
    Layout::pad_to_align,
    Layout::array ja
    Layout::extend.
  • StandardsĂŒsteemi funktsioonid on laienenud:
    • Lisatud on uus variant «vec![]», mis peegeldab otse Vec::new(), vĂ”imaldades kasutada «vec![]» kontekstis, mitte konstantide asemel.
    • convert::Infallible lisati rakendus (impl) tĂŒĂŒbile Hash.
    • OsStringis rakendatud targad nĂ€idikud DerefMut ja IndexMut, tagastavad «&mut OsStr».
    • Lisatud on Unicode 13 tugi.
    • Stringis rakendatud From.
    • IoSlice'is rakendatud tĂŒĂŒp Kopeeri.
    • Vec rakendatud From.
    • proc_macro::LexErroris rakendatud fmt::Display ja Error.
  • MĂ€rgis «const», mis mÀÀrab vĂ”imaluse kasutada igas kontekstis, rakendati meetodites from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ja to_ne_bytes kĂ”ikide tĂ€isarvutĂŒĂŒpide jaoks.
  • Lisatud on toetamine staatiliste raamatukogude genereerimiseks formaadis «.a» asemel «.lib» GNU-plaatformide jaoks Windowsis.
  • Minimaalsed nĂ”uded LLVM-le tĂ”steti versioonini LLVM 8.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster