Rust 1.67 ohjelmointikielen julkaisu

Yleiskäyttöinen ohjelmointikieli Rust 1.67, joka on perustettu Mozilla-projektilla, mutta nyt kehitetty riippumattoman voittoa tavoittelemattoman järjestön Rust Foundationin alaisuudessa, on julkaistu. Kieli keskittyy muistin turvallisuuteen ja tarjoaa välineet korkean työn rinnakkaisuuden saavuttamiseen välttäen samalla roskankeräimen ja ajonajan käyttöä (ajoaika rajoittuu vakiokirjaston perusalustukseen ja ylläpitoon).

Rustin muistinkäsittelymenetelmät säästävät kehittäjää virheiltä osoittimia käsiteltäessä ja suojaavat ongelmilta, jotka johtuvat matalan tason muistin käsittelystä, kuten muistialueen käyttäminen sen vapauttamisen jälkeen, nollaosoittimien viittauksen poistaminen, puskurin ylitykset jne. Kirjastojen jakelua, koontiversioiden tarjoamista ja riippuvuuksien hallintaa varten projekti kehittää Cargo-pakettien hallintaa. Crates.io-tietovarastoa tuetaan kirjastojen isännöintiin.

Muistin turvallisuutta tarjotaan Rustissa käännöshetkellä referenssitarkistuksen, objektin omistajuuden, objektien eliniän (laajuuden) kirjaamisen ja muistin käytön oikeellisuuden arvioimisen avulla koodin suorittamisen aikana. Ruoste tarjoaa myös suojan kokonaislukujen ylivuodoilta, vaatii muuttujien arvojen pakollisen alustamisen ennen käyttöä, käsittelee virheet paremmin standardikirjastossa, soveltaa oletusarvoisesti muuttumattomien viitteiden ja muuttujien käsitettä, tarjoaa vahvan staattisen kirjoittamisen loogisten virheiden minimoimiseksi.

Tärkeimmät innovaatiot:

  • Async-funktiot Future::Output-ominaisuutta käyttäen voivat nyt määrittää "#[must_use]"-merkintöjä, jotka mahdollistavat varoituksen näyttämisen, jos paluuarvo jätetään huomiotta. Tämä auttaa havaitsemaan virheitä, jotka johtuvat siitä, että funktio olettaa muokkaavan arvoja uuden arvon palauttamisen sijaan. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } varoitus: `bar`-funktion palauttama käyttämätön future-funktion tuloste, jota on käytettävä —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^^ | = huomautus: `#[warn(unused_must_use)]` on oletuksena käytössä
  • std::sync::mpsc (monituottaja-yksikuluttaja) FIFO-jonototeutusta on päivitetty siirtymällä crossbeam-channel-moduuliin säilyttäen samalla API:n. Uusi toteutus korjaa useita ongelmia, parantaa suorituskykyä ja yksinkertaistaa koodin ylläpitoa.
  • Uusi osa API:sta on siirretty vakaan luokkaan, mukaan lukien ominaisuuksien menetelmät ja toteutukset on vakautettu:
    • {integer}::tarkistettu_logi
    • {integer}::tarkistettu_log2
    • {integer}::tarkistettu_log10
    • {integer}::ilog
    • {kokonaisluku}::ilog2
    • {kokonaisluku}::ilog10
    • Ei-ZeroU*::ilog2
    • Ei-ZeroU*::ilog10
    • Ei-nolla*::BITS
  • "const"-attribuuttia, joka määrittää mahdollisuuden käyttää missä tahansa kontekstissa vakioiden sijaan, käytetään funktioissa:
    • char::from_u32
    • merkki::numerosta
    • char::to_digit
    • ydin::char::from_u32
    • ydin::merkki::numerosta
  • Toteutettu kolmas tukitaso Rustin käytölle ytimessä Linux (linuxkernel) sekä Sony PlayStation 1:lle (mipsel-sony-psx), PowerPC:lle AIX:lla (powerpc64-ibm-aix) ja QNX Neutrino RTOS:lle (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Kolmas taso tarjoaa perustukea, mutta ilman automaattista testausta, virallisia koontiversioita tai koontiversioiden tarkistusta.

Lisäksi ARM on julkaissut korjauksia, jotka mahdollistavat Rust-kielen käytön ajurien ja ydinmoduulien kehittämisessä. Linux, käännetty AArch64-arkkitehtuuriin perustuville järjestelmille.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster