Ohjelmointi

Rust 1.48: n uudet ominaisuudet

Rust-ohjelmointikielen ainutlaatuinen lähestymistapa johtaa parempaan koodiin ja vähemmän kompromisseja kuin C, C ++, Go ja muut todennäköisesti käyttämäsi kielet. Se päivitetään myös säännöllisesti, usein kuukausittain.

Mistä ladata uusin Rust-versio

Jos sinulla on jo aikaisempi Rust-versio asennettuna ruostuminen, pääset uusimpaan versioon seuraavalla komennolla:

$ rustup -päivitys vakaa

Liittyvä video: Turvallisempien ohjelmistojen kehittäminen Rustin kanssa

Nopea nopeasti uudella tulokkaalla Rust, joka on suunniteltu luomaan nopeita, järjestelmätason ohjelmistoja. Tämä kahden minuutin animoitu selitin osoittaa, kuinka Rust ohittaa muistin ja hallinnan tuskalliset ohjelmointikysymykset.

Rust 1.48.0: n uudet ominaisuudet

19. marraskuuta 2020 julkistettu Rust 1.48.0 sisältää helpomman linkityksen Rustdoc-kirjaston dokumentointityökalussa, ja syntaksin avulla Rustdoc saa tietää, kun kehittäjät yrittävät linkittää tyyppiin; URL-osoitteet luodaan. Myös versiossa 1.48.0:

  • Kehittäjät voivat määrittää # {doc (alias = “”)] kohteisiin lisätäksesi hakunimeä, kun haet Rustdoc-käyttöliittymän kautta.
  • vaarallinen avainsana on nyt syntaktisesti sallittu moduuleissa. Vaikka tämä hylätään edelleen semanttisesti, se voidaan nyt jäsentää menettelymakroilla.
  • Kääntäjässä -C-linkki itsenäinen = kääntäjän lippu on vakiintunut. Tämä kertoo ruoste linkitetäänkö oma C-ajonaika ja kirjastot vai luotetaanko ulkoiseen linkkiin niiden löytämiseen. Tätä tuetaan vain windows-gnu, linux-muslja olinko minä alustoilla.
  • Kirjastossa [T; N]: Kokeile API on nyt vakaa. Kehittäjät voivat yrittää muuttaa vektorin tietyn pituiseksi taulukoksi. Myös tässä julkaisussa vakautettiin viisi muuta sovellusliittymää: siivu :: as_ptr_range, siivu :: as_mut_ptr_range, VecDeque :: make_contiguous, tulevaisuus :: odottaaja tulevaisuus :: valmis.
  • Myös kirjastossa kaikki minkä tahansa pituiset taulukot toteutetaan nyt Kokeile.

Rust 1.47.0: n uudet ominaisuudet

Julkaistu 8. lokakuuta 2020, Rust 1.47.0: lla ei ole uusia kieliominaisuuksia, mutta se parantaa standardikirjastoa. Elämänlaatu ja työkaluketjun parannukset sekä kirjastojen vakauttaminen ovat esillä julkaisussa. Päivityksen julkaisutiedot on julkaistu.

Rust 1.47.0: n erityisiä ominaisuuksia ovat:

  • "Const generics" -ominaisuus, joka vaikuttaa ominaisuuksiin suuremmissa matriiseissa. Ominaisuus on vielä vakautettava. Ruosteella ei ole ollut tapaa olla yleinen kokonaislukuarvojen suhteen, mikä on aiheuttanut ongelmia matriisien kanssa. Tämän ominaisuuden on tarkoitus käsitellä tätä ongelmaa ja tehdä matriiseista hyödyllisempiä.
  • Päivitys LLVM 11-kääntäjäinfrastruktuuriin, mikä tekee siitä oletuksen.
  • Lyhyemmät jälkijäljet, mikä helpottaa ongelmien löytämistä.
  • ruoste tukee nyt -C-ohjaus-virtaussuoja, vaihtoehto, joka kytkee Control Flow Guard -tietoturvaominaisuuden päälle Windowsissa. Muut alustat jättävät tämän lipun huomiotta.
  • Rustdoc tukee nyt Ayu-teemaa.
  • Yhdeksän vakiokirjaston sovellusliittymää stabiloitiin: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Tulos :: as_deref, Tulos :: as_deref_mut, Vec :: vuoto, osoitin :: offset_from, f32 :: TAU ja f64 :: TAU.

1.46.0: n uudet ominaisuudet

Rust 1.46, joka ilmoitettiin 27. elokuuta 2020, sisältää seuraavat ominaisuudet:

  • Useita ydinkielen ominaisuuksia voidaan nyt käyttää const fnmukaan lukien jos, jos annetaanotteluja useita muita.
  • A # [track_caller] attribuutti, joka on suunniteltu parantamaan virheilmoituksia, kun pura ja siihen liittyvien toimintojen paniikki, on nyt vakaa.
  • Vaihdettaessa kirjastoon vakio :: mem :: unohda on nyt a const fn. Myös kirjastossa vakiintui kaksi uutta sovellusliittymää: Vaihtoehto :: zip ja vec :: Tyhjennä :: as_slice.
  • Kääntäjä, citylib Kohdetta voidaan käyttää Apple iOS- ja tvOS-alustoilla.
  • Rekursiivinen indeksointi tupliksi ei enää vaadi sulkeita.

Rust 1.45.0: n uudet ominaisuudet

Julkaistu 16. heinäkuuta 2020, Rust 1.45 sisältää seuraavat lisäykset ja parannukset:

  • Korjausta tarjotaan korjaamaan pitkäaikainen epämiellyttävyys, kun heitetään kokonaislukuja ja kelluvia.
  • Stabilointia tarjotaan funktiomaisille proseduraalisille makroille lausekkeissa, kuvioissa ja lauseissa. Makrojen käytön laajentaminen auttaa Rocket-verkkokehyksen käyttöä Rustille.
  • Useat kirjaston sovellusliittymät on vakiintunut, kuten Kaari :: as_ptr, BTreeMap :: remove_entryja Span :: ratkaistu_at. Täydellinen sovellusliittymien luettelo löytyy Rust Blogista.

Rust 1.43.1: n uudet ominaisuudet

Tämä kohtajulkaisu otettiin käyttöön 7. toukokuuta 2020 käsittelemään kahta regressiota, jotka otettiin käyttöön vakaassa 1.43.0-julkaisussa. Se päivittää myös Cargo-paketinhallinnan käyttämän OpenSSL-version. Ominaisuuksia ovat:

  • Rust 1.27 toi tuen x86 - suorittimen ominaisuuksien tunnistamiseen vakiokirjastossa is_x86_feature_detected makro. Sisäisen uudelleenrakentamisen takia Rust 1.43.0 esti sellaisten ominaisuuksien havaitsemisen, joita ei voida vielä käyttää vakaana, vaikka niiden havaitseminen oli aiemmin sallittua. Versio 1.43.1 korjaa tämän regression.
  • Korjausta tarjotaan rikkoutuneille rahtipaketti - luettelo komento. Rust 1.43 hajosi Cargon kanssa julkaistuihin paketteihin sisältyvien tiedostojen luettelointitukeen, kun se suoritettiin työtilan sisällä polun riippuvuuksilla tai julkaisemattomilla versioilla.
  • Cargo-riippuvuus OpenSSL on päivitetty arvoon 1.1.1g. OpenSSL oli julkaissut tietoturvatiedotteen, mutta Rust-tiimi ei pystynyt sisällyttämään korjausta ajoissa Rust 1.43.0: een. Tiimillä ei ole todisteita siitä, että haavoittuvuus voisi vaarantaa Cargon käyttäjien turvallisuuden.

Rust 1.43.0: n uudet ominaisuudet

Ilmoitettiin 23. huhtikuuta 2020, Rust 1.43.0: ta pidettiin melko vähäisenä julkaisuna, eikä merkittäviä ominaisuuksia esitelty. Muutokset sisältävät:

  • Kehittäjät voivat käyttää kohde fragmentit interpoloida kohteet runkoon piirre, implja ulkoinen lohkot.
  • Primitiivien, viitteiden ja binaaritoimintojen ympärillä tehtyä tyyppipäätelmää parannettiin.
  • Integrointitestauksen helpottamiseksi Cargo asettaa testeille uusia ympäristömuuttujia suoritettavien tiedostojen löytämiseksi.
  • Rust-kirjastossa kehittäjät voivat käyttää niihin liittyviä vakioita float- ja kokonaislukuissa suoraan ilman, että heidän tarvitsee tuoda moduulia. Lisäksi on olemassa uusi primitiivinen moduuli, joka vie uudelleen Rust-primitiiviset tyypit, mikä on hyödyllinen makroa kirjoitettaessa ja kehittäjät haluavat varmistaa, että tyypit eivät ole varjossa.
  • Useat kirjaston sovellusliittymät stabiloitiin: Kerran :: is_completed, f32 :: LOG10_2, f32 :: LOG2_10, f32 :: LOG10_2, f64 :: LOG10_2, f64 :: LOG2_10ja iter :: kerran.

Rust 1.41: n uudet ominaisuudet

Rust 1.38: n uudet ominaisuudet

Rust 1.38, julkaistu syyskuussa 2019, sisältää seuraavat uudet ominaisuudet ja parannukset:

  • Cargo-paketinhallinta hyödyntää putkilinjan kokoamista automaattisesti Rust 1.38: n kanssa. Putkilinjaisen kääntämisen yhteydessä kääntäjä ei tarvitse täysin rakennettuja riippuvuuksia laatikkoa koottaessa. Tarvitaan vain heidän metatietoja, kuten luettelo riippuvuustyypeistä. Metatiedot tuotetaan varhaisessa vaiheessa kokoamisprosessia. Jotkut testit ovat osoittaneet, että kokoamisnopeus kasvaa 10-20 prosenttia joidenkin laatikkokaavioiden optimoiduille, puhtaille koontiversioille.
  • Laminointi joidenkin väärän käytön mem :: {yhtenäistetty, nollattu}. Tämän julkaisun avulla rustc-kääntäjä antaa nukan kapealle luokalle virheellisiä alustuksia käyttäen mem :: alustamaton tai mem :: nollattu.
  • Laajennus # [vanhentunut] attribuutti makroille. Tämä ominaisuus on mahdollistanut laatikkojen kirjoittajien ilmoittavan käyttäjille, että heidän laatikkonsa tuote poistetaan käytöstä ja poistetaan tulevassa julkaisussa.
  • Kehittäjät voivat käyttää vakio :: mikä tahansa :: tyypin_nimi saadaksesi tyypin nimen.
  • Useiden toimintojen vakauttaminen, mukaan lukien ::heittää ja ::heittää.

Rust 1.37: n uudet ominaisuudet

Elokuussa 2019 julkaistulla Rust 1.37: llä on seuraavat uudet ominaisuudet ja parannukset:

  • Kyky viitata enum vaihtoehtoja läpi tyyppi. Kehittäjät voivat myös viitata enum muunnelmat Itse :: Vaihtoehto.
  • rahdin myyjä komento, aiemmin erillinen laatikko, on nyt rakennettu kielelle. Komento noutaa projektiriippuvuudet ja purkaa ne toimittajallehakemiston ja näyttää määrityskoodin, jota tarvitaan toimitetun koodin käyttämiseen rakennuksen aikana.
  • ruoste kääntäjä tukee profiiliohjattua optimointia, optimointitekniikkaa etukäteen tehtäville kääntäjille-C-profiilin luonti ja -C-profiilin käyttö.
  • Kehittäjät voivat luoda nimeämättömiä vakio kohteita.

Rust 1.36: n uudet ominaisuudet

Rust-järjestelmien ohjelmointikielen versio 1.36 julkaistiin heinäkuussa 2019. Rust 1.36 sisältää seuraavat uudet ominaisuudet ja parannukset:

  • Asynkronisen työn julistamiseen käytetty Tulevaisuuden ominaisuus on nyt vakaa. Asynkroniset toiminnot Rustissa ovat tulleet yhteen paloina useissa versioissa nyt asynkronoitu ja odottaa viimeiset tärkeät jäljellä olevat kappaleet.
  • Muistin hallintaan käytetty allokointilaatikko on nyt vakaa. Tämä laatikko kerää kaikki Rustin vakiokirjaston palaset, jotka riippuvat globaalista muistinjakomekanismista, kuten Vec. Näin laatikot, jotka eivät käytä vakiokirjastoa, voivat silti käyttää allokaattoria tuomalla varauksen erikseen - hyödyllistä ympäristöissä, joissa haluat koodikokojen olevan mahdollisimman pieniä.
  • Uusi tyyppi, EhkäUninit, avulla voit määrittää objektit, jotka voivat koostua alustamattomasta muistista, kuten laiskasti varattu taulukko. Rustin edellinen mekanismi tämän tekemiseen oli toiminto, mem :: alustamaton, joka aiheutti monia vaaroja rennossa käytössä. EhkäUninit tarjoaa turvallisemman tavan tehdä tämä käyttämällä Rustin tyyppisen järjestelmän rajoituksia.
  • Ei-leksikaaliset elinajat, joka on Rustin uusimpien versioiden ominaisuus, on tuettu takaisin aiempiin painoksiin. Ei-leksikaalinen elinaika tekee Rustin lainanvalvontamekanismista vähemmän vaikeaa työskennellä (lähinnä antaa sinun kirjoittaa laajemman valikoiman ohjelmia, jotka ovat edelleen voimassa Rust) ja pystyy paremmin tarttumaan ongelmiin, joista lainan tarkistaja puuttui.

Muut parannukset:

  • Uusi toteutus HashMap tyyppi, joka toimii nopeammin ja käyttää vähemmän muistia.
  • Rahti voi nyt toimia täysin offline-tilassa tarvittaessa.

Rust 1.35: n uudet ominaisuudet

Toukokuussa 2019 julkaistu versio 1.35 tarjoaa seuraavat:

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