Programiranje

Kaj je novega v Rustu 1.48

Edinstven pristop programskega jezika Rust povzroči boljšo kodo z manj kompromisi kot C, C ++, Go in drugi jeziki, ki jih verjetno uporabljate. Prav tako se redno posodablja, pogosto vsak mesec.

Kje prenesti najnovejšo različico Rust

Če že imate nameščeno prejšnjo različico Rusta prek rustup, do najnovejše različice lahko dostopate prek naslednjega ukaza:

$ rustup posodobitev stabilna

Sorodni video: Razvijanje varnejše programske opreme z Rustom

Hitro pospešite novost Rust, zasnovano za ustvarjanje hitre programske opreme na sistemski ravni. Ta dvominutni animirani razlagalnik prikazuje, kako Rust obide moteča programska vprašanja glede pomnilnika in upravljanja.

Nove funkcije v Rustu 1.48.0

Rust 1.48.0, predstavljen 19. novembra 2020, vsebuje enostavnejše povezovanje v orodju za dokumentacijo knjižnice Rustdoc s sintakso, ki Rustdocu sporoča, kdaj se razvijalci poskušajo povezati na vrsto; Generirani bodo URL-ji. Tudi v različici 1.48.0:

  • Razvijalci lahko določijo # {doc (vzdevek = “”)] na elemente za dodajanje vzdevkov pri iskanju med uporabniškim vmesnikom Rustdoc.
  • The nevarno ključna beseda je zdaj sintaksično dovoljena za module. Čeprav je to še vedno semantično zavrnjeno, ga lahko zdaj razčlenijo postopkovni makri.
  • V prevajalniku je -C povezava-samostojna = zastavica prevajalnika je stabilizirana. To pove rustc ali naj poveže svoj lastni izvajalni čas C in knjižnice ali se za njihovo iskanje zanese na zunanjega povezovalnika. To je podprto samo na windows-gnu, linux-musl, in sem bil jaz platforme.
  • V knjižnici je [T; N]: Poskusite od API je zdaj stabilen. Razvijalci lahko z njim poskušajo vektor spremeniti v polje z določeno dolžino. V tej izdaji je bilo stabiliziranih tudi pet drugih API-jev: rezina :: as_ptr_range, rezina :: as_mut_ptr_range, VecDeque :: make_contiguous, prihodnost :: v teku, in prihodnost :: pripravljen.
  • Tudi v knjižnici se zdaj izvajajo vsa polja katere koli dolžine TryFrom.

Nove funkcije v Rustu 1.47.0

Rust 1.47.0, napovedan 8. oktobra 2020, nima novih jezikovnih lastnosti, vendar izboljšuje standardno knjižnico. V tej izdaji so predstavljene izboljšave kakovosti življenja in izboljšanje orodjarne ter stabilizacija knjižnic. Za posodobitev so objavljene opombe ob izdaji.

Posebne zmogljivosti v Rust 1.47.0 vključujejo:

  • Funkcija "const generiki", ki vpliva na lastnosti večjih nizov. Funkcijo je treba še vedno stabilizirati. Rust ni imel možnosti, da bi bil generičen nad celoštevilčnimi vrednostmi, kar je povzročalo težave z nizi. Ta zmožnost je namenjena reševanju te težave in izboljšanju uporabnosti nizov.
  • Nadgradnja infrastrukture prevajalnika LLVM 11, zaradi česar je privzeta.
  • Krajši zapisi nazaj, kar olajša iskanje težav.
  • rustc zdaj podpira -C nadzor-pretok-zaščita, možnost, ki vklopi varnostno funkcijo Control Flow Guard v sistemu Windows. Druge platforme ignorirajo to zastavo.
  • Rustdoc zdaj podpira temo Ayu.
  • Stabiliziranih je bilo devet API-jev v standardni knjižnici: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: leak, pointer :: offset_from, f32 :: TAU in f64 :: TAU.

Nove funkcije v 1.46.0

Rust 1.46, napovedan 27. avgusta 2020, vključuje naslednje zmogljivosti:

  • V operacijskem sistemu Windows je zdaj mogoče uporabiti več osnovnih jezikovnih funkcij const fn, vključno z če, če je dovoljenotekmoin več drugih.
  • A # [track_caller] atribut, zasnovan za izboljšanje sporočil o napakah, ko odviti in s tem povezane funkcije panike, je zdaj stabilna.
  • V spremembi knjižnice, std :: mem :: pozabi je zdaj a const fn. Tudi v knjižnici sta bila stabilizirana dva nova API-ja: Možnost :: zip in vec :: Odtok :: as_slice.
  • Za prevajalnik je citylib target se lahko uporablja na platformah Apple iOS in tvOS.
  • Rekurzivno indeksiranje v korice ne zahteva več oklepajev.

Nove funkcije v Rustu 1.45.0

Rust 1.45, objavljen 16. julija 2020, vključuje naslednje dodatke in izboljšave:

  • Ponujen je popravek, ki bo odpravil nekaj dolgotrajnega nesoglasja pri predvajanju med celimi in plavajočimi številkami.
  • Stabilizacija je na voljo funkcijskim postopkovnim makrom v izrazih, vzorcih in izjavah. Širitev uporabe makrov pomaga z uporabo spletnega ogrodja Rocket za Rust.
  • Več knjižničnih API-jev je bilo stabiliziranih, na primer Arc :: as_ptr, BTreeMap :: remove_entry, in Razpon :: razrešen_at. Celoten seznam API-jev najdete v blogu Rust.

Nove funkcije v Rustu 1.43.1

Ta točka izdaje je bila uvedena 7. maja 2020, da bi obravnavala dve regresiji, uvedeni v stabilni izdaji 1.43.0. Prav tako posodablja različico OpenSSL, ki jo uporablja upravitelj paketov Cargo. Značilnosti vključujejo:

  • Rust 1.27 je predstavil podporo za zaznavanje funkcij procesorja x86 v standardni knjižnici prek is_x86_feature_detected makro. Zaradi notranjega preoblikovanja je Rust 1.43.0 preprečil zaznavanje funkcij, ki jih še ni mogoče uporabiti na stabilnem, čeprav je bilo predhodno dovoljeno njihovo zaznavanje. Različica 1.43.1 popravi to regresijo.
  • Ponujen je popravek za zlomljeno tovorni paket - seznam ukaz. Rust 1.43 je zlomil podporo za naštevanje datotek, vključenih v pakete, objavljene s storitvijo Cargo, kadar se izvaja v delovnem prostoru z odvisnostmi od poti ali neobjavljene različice.
  • OpenSSL, odvisnost od tovora, je posodobljen na 1.1.1g. OpenSSL je izdal varnostno svetovanje, vendar ekipa Rusta ni mogla pravočasno vključiti popravka za Rust 1.43.0. Skupina nima dokazov, da bi ranljivost lahko ogrozila varnost uporabnikov Carga.

Nove funkcije v Rustu 1.43.0

Napovedan 23. aprila 2020, Rust 1.43.0 je veljal za dokaj majhno izdajo, brez predstavljenih večjih funkcij. Spremembe vključujejo:

  • Razvijalci lahko uporabljajo element fragmenti za interpolacijo elementov v telo lastnost, impl, in zunanjost bloki.
  • Izboljšano je bilo sklepanje o tipih okoli primitivov, referenc in binarnih operacij.
  • Kot pomoč pri integracijskem testiranju bo Cargo določil nekaj novih spremenljivk okolja za teste za iskanje izvršljivih datotek.
  • V knjižnici Rust lahko razvijalci neposredno uporabljajo pridružene konstante na plavajočih in celih številih, ne da bi morali uvoziti modul. Obstaja tudi novo primitivno modul, ki ponovno izvozi primitivne tipe Rust, kar je koristno pri pisanju makra, razvijalci pa želijo zagotoviti, da tipi niso v senci.
  • V knjižnici je bilo stabiliziranih več API-jev: Ko je :: is_completed, f32 :: LOG10_2, f32 :: LOG2_10, f32 :: LOG10_2, f64 :: LOG10_2, f64 :: LOG2_10, in iter :: enkrat_z.

Nove funkcije v Rust 1.41

Nove funkcije v Rustu 1.38

Rust 1.38, izdan septembra 2019, vsebuje naslednje nove funkcije in izboljšave:

  • Upravitelj paketov Cargo bo samodejno izkoristil cevovodno kompilacijo z Rustom 1,38. Pri cevovodnem prevajanju prevajalnik pri sestavljanju zaboja ne potrebuje popolnoma zgrajenih odvisnosti. Potrebni so le njihovi metapodatki, na primer seznam vrst odvisnosti. Metapodatki se ustvarijo zgodaj v procesu zbiranja. Nekateri testi so pokazali, da se hitrost prevajanja poveča za 10 do 20 odstotkov za optimizirane, čiste gradnje nekaterih grafov zabojev.
  • Povezovanje nekaterih nepravilnih uporab mem :: {poenostavljeno, ničelno}. S to izdajo bo prevajalnik rustc zagotovil drobec za ozek razred nepravilnih inicializacij z uporabo mem :: neinicializirano ali mem :: ničlo.
  • Podaljšanje # [zastarelo] atribut makrom. Ta atribut je avtorjem zabojev omogočil, da obvestijo uporabnike, da bo element njihovega zaboja opuščen in odstranjen v prihodnji izdaji.
  • Razvijalci lahko uporabljajo std :: poljubno :: ime_tipa da dobite ime tipa.
  • Stabilizacija številnih funkcij, vključno z :: igralska zasedba in :: igralska zasedba.

Nove funkcije v Rustu 1.37

Rust 1.37, izdan avgusta 2019, ima naslednje nove funkcije in izboljšave:

  • Sposobnost sklicevanja na enum različice skozi tip. Razvijalci se lahko tudi sklicujejo na enum različice z Self :: Varianta.
  • The prodajalec tovora ukaz, prej ločen zaboj, je zdaj vgrajen v jezik. Ukaz pridobi odvisnosti projekta in jih razpakira v prodajalcain prikaže delček konfiguracije, potreben za uporabo prodane kode med gradnjami.
  • The rustc prevajalnik podpira optimizirano vodenje po profilu, tehniko optimizacije za predčasne prevajalnike prek-C profil-generiraj in -C-uporaba profila.
  • Razvijalci lahko ustvarjajo neimenovane const predmetov.

Nove funkcije v Rustu 1.36

Različica 1.36 programskega jezika sistemov Rust je bila izdana julija 2019. Rust 1.36 vključuje naslednje nove funkcije in izboljšave:

  • Lastnost prihodnosti, ki se uporablja za razglasitev asinhronega dela, je zdaj stabilna. Asinhrone operacije v Rustu se že več različic sestavljajo po delih, z asinh in čakati zadnji pomembni preostali deli.
  • Razdelilni zaboj, ki se uporablja za upravljanje pomnilnika, je zdaj stabilen. Ta zaboj zbira vse dele Rustove standardne knjižnice, ki so odvisni od mehanizma za dodeljevanje globalnega pomnilnika, kot je npr Vec. Tako lahko zaboji, ki ne uporabljajo standardne knjižnice, še vedno uporabljajo razdeljevalnik tako, da uvozijo alok ločeno - uporabno za okolja, kjer želite, da so velikosti kod čim manjše.
  • Nov tip, Mogoče Uninit, vam omogoča, da definirate predmete, ki so lahko iz neinicializiranega pomnilnika, na primer leno dodeljeno polje. Prejšnji Rustov mehanizem za to je bil funkcija, mem :: neinicializirano, ki predstavlja veliko nevarnosti za vsakodnevno uporabo. Mogoče Uninit zagotavlja varnejši način za to, ki uporablja omejitve Rustovega sistema.
  • Neleksična življenjska doba, značilnost zadnjih izdaj Rusta, je bila prenesena v prejšnje izdaje. Zaradi neleksične življenjske dobe je Rustov mehanizem preverjanja izposojanja manj težaven (v bistvu vam omogoča, da napišete širši nabor programov, ki še vedno veljajo Rust), in lažje odkriva težave, ki jih je izposojevalnik zamudil.

Druge izboljšave:

  • Nova izvedba za HashMap tip, ki deluje hitreje in porabi manj pomnilnika.
  • Po potrebi lahko tovor potuje popolnoma brez povezave.

Nove funkcije v Rustu 1.35

Različica 1.35, izdana maja 2019, ponuja naslednje:

$config[zx-auto] not found$config[zx-overlay] not found