Rust 1.69 ohjelmointikielen julkaisu

Yleiskäyttöinen ohjelmointikieli Rust 1.69, 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:

  • Cargo-pakettien hallinta toteuttaa automaattisesti ratkaistavissa olevien varoitusten havaitsemisen ja asianmukaiset suositukset "cargo fix" tai "cargo clippy --fix" suorittamiseksi. varoitus: käyttämätön tuonti: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | käytä std::hash::hash; | ^^^^^^^^^^^^^^^^ | = huomautus: '#[warn(unused_imports)]' päällä oletusarvoisesti varoitus: 'foo' (bin "foo") loi 1 varoituksen (syötä 1 ehdotus suorittamalla "cargo fix --bin "foo")
  • Lisätty Cargo näyttääkseen suosituksen käyttää "cargo add" -komentoa, kun yritetään asentaa kirjasto "cargo install" -komennolla.
  • Kääntämisajan lyhentämiseksi virheenkorjaustietojen sisällyttäminen koontiskripteihin on oletusarvoisesti lopetettu. Jos koontiskriptit suoritetaan onnistuneesti, muutoksella ei ole näkyvää vaikutusta, mutta jos se epäonnistuu, backtrace dump sisältää vähemmän tietoa. Palauttaaksesi vanhan toiminnan Cargo.tomliin lisää: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Uusi osa API:sta on siirretty vakaan luokkaan, mukaan lukien ominaisuuksien menetelmät ja toteutukset on vakautettu:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • "const"-attribuuttia, joka määrittää mahdollisuuden käyttää missä tahansa kontekstissa vakioiden sijaan, käytetään funktioissa:
    • SocketAddr::uusi
    • SocketAddr::ip
    • SocketAddr::portti
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::uusi
    • SocketAddrV4::ip
    • SocketAddrV4::portti
    • SocketAddrV6::uusi
    • SocketAddrV6::ip
    • SocketAddrV6::portti
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Lisätty mahdollisuus käyttää tosi- ja false-lippuja kääntäjän argumenteissa.

Lähde: opennet.ru

Lisää kommentti