Rust 1.62 Programming Language Release

De algemiene programmeertaal Rust 1.62, oprjochte troch it Mozilla-projekt mar no ûntwikkele ûnder auspysjes fan de ûnôfhinklike non-profit organisaasje Rust Foundation, is frijjûn. De taal rjochtet him op ûnthâld feilichheid en jout de middels te berikken hege baan parallelism wylst it foarkommen fan it brûken fan in garbage collector en runtime (runtime wurdt redusearre ta basis inisjalisaasje en ûnderhâld fan de standert bibleteek).

De metoaden foar ûnthâldbehanneling fan Rust besparje de ûntwikkelder fan flaters by it manipulearjen fan oanwizers en beskermje tsjin problemen dy't ûntsteane troch ûnthâldôfhanneling op leech nivo, lykas tagong krije ta in ûnthâldgebiet nei't it befrijd is, it ferwizen fan nul-oanwizers, buffer-oerrin, ensfh. Om bibleteken te fersprieden, builds te leverjen en ôfhinklikens te behearjen, ûntwikkelet it projekt de Cargo-pakketbehearder. It crates.io repository wurdt stipe foar hosting fan bibleteken.

Unthâld feilichheid wurdt foarsjoen yn Rust op it gearstallen tiid troch referinsje kontrôle, byhâlden fan foarwerp eigendom, byhâlden fan foarwerp lifetimes (omfang), en beoardielje de korrektheid fan ûnthâld tagong by koade útfiering. Rust leveret ek beskerming tsjin oerstreamingen fan heule getal, fereasket ferplichte inisjalisaasje fan fariabele wearden foar gebrûk, behannelet flaters better yn 'e standertbibleteek, tapast standert it konsept fan ûnferoarlike referinsjes en fariabelen, biedt sterke statyske typen om logyske flaters te minimalisearjen.

Wichtichste ynnovaasjes:

  • De pakketbehearder "cargo" biedt it kommando "taheakje", wêrtroch jo nije ôfhinklikens kinne tafoegje oan it Cargo.toml-manifest of besteande ôfhinklikens feroarje fan 'e kommandorigel. It kommando lit jo ek yndividuele funksjes en ferzjes opjaan, bygelyks: cargo add serde —features derive cargo add nom@5
  • De mooglikheid tafoege om "#[ôfliede (Standert)]" te brûken mei enums wêryn de standertopsje wurdt definieare mei it attribút "#[standert]". #[ôfliede (Standert)] enum Miskien { #[standert] Neat, Iets(T), }
  • Op it Linux-platfoarm wurdt in kompakter en rapper ymplemintaasje fan it Mutex-syngronisaasjemeganisme brûkt, basearre op it gebrûk fan futexes levere troch de Linux-kernel. Oars as de earder brûkte ymplemintaasje basearre op de pthreads-bibleteek, brûkt de nije ferzje allinich 5 bytes ynstee fan 40 om de Mutex-tastân op te slaan. Likegoed binne de Condvar- en RwLock-skoattelmeganismen oerbrocht nei futex.
  • In twadde nivo fan stipe foar it x86_64-unknown-none-doelplatfoarm is ymplementearre, ûntworpen om útfierbere bestannen te generearjen dy't kinne wurkje sûnder in bestjoeringssysteem. Bygelyks, it opjûne doelplatfoarm kin brûkt wurde by it skriuwen fan kernelkomponinten. It twadde nivo fan stipe omfettet in garânsje foar montage.
  • It tredde nivo fan stipe is ymplementearre foar de platfoarms aarch64-pc-windows-gnullvm en x86_64-pc-windows-gnullvm. It tredde nivo omfettet basisstipe, mar sûnder automatisearre testen, publisearjen fan offisjele builds, of kontrolearjen oft de koade boud wurde kin.
  • In nij diel fan 'e API is ferpleatst nei de kategory stabile, ynklusyf de metoaden en ymplemintaasjes fan eigenskippen binne stabilisearre:
    • bool::dan_wat
    • f32::totaal_cmp
    • f64::totaal_cmp
    • Stdin::lines
    • windows::CommandExt::raw_arg
    • impl standertwearde foar AssertUnwindSafe
    • Fan > foar rc
    • Fan > foar Arc<[u8]>
    • FusedIterator foar EncodeWide

    Boarne: opennet.ru

Add a comment