Rust 1.69 programmeertaal release

De release van de algemene programmeertaal Rust 1.69, opgericht door het Mozilla-project, maar nu ontwikkeld onder auspiciën van de onafhankelijke non-profitorganisatie Rust Foundation, is gepubliceerd. De taal is gericht op geheugenveiligheid en biedt de middelen om een ​​hoog parallellisme te bereiken bij het uitvoeren van taken, terwijl het gebruik van een garbage collector en runtime wordt vermeden (runtime wordt beperkt tot basisinitialisatie en onderhoud van de standaardbibliotheek).

De geheugenbeheertechnieken van Rust bevrijden de ontwikkelaar van pointermanipulatiefouten en beschermen tegen problemen die voortkomen uit geheugenmanipulatie op laag niveau, zoals after-free toegang, null pointer-dereferenties, bufferoverruns en dergelijke. Om bibliotheken te distribueren, de assemblage te garanderen en afhankelijkheden te beheren, ontwikkelt het project de Cargo-pakketbeheerder. De kratten.io-repository wordt ondersteund voor het hosten van bibliotheken.

Geheugenveiligheid wordt in Rust afgedwongen tijdens het compileren door middel van referentiecontrole, het volgen van objecteigendom, overweging van de levensduur van objecten (scoping) en evaluatie van geheugentoegang tijdens runtime. Rust biedt ook bescherming tegen overflows van gehele getallen, vereist dat variabelewaarden vóór gebruik worden geïnitialiseerd, heeft een betere foutafhandeling in de standaardbibliotheek, gebruikt standaard het concept van onveranderlijke referenties en variabelen en biedt sterke statische typering om logische fouten te minimaliseren.

Belangrijkste innovaties:

  • De Cargo-pakketbeheerder implementeert de detectie van waarschuwingen die automatisch kunnen worden opgelost, en de uitvoer van passende aanbevelingen voor het uitvoeren van “cargo fix” of “cargo clippy -fix”. waarschuwing: ongebruikte import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | gebruik std::hash::Hash; | ^^^^^^^^^^^^^^^ | = notitie: '#[warn(unused_imports)]' staat standaard aan waarschuwing: 'foo' (bin "foo") heeft 1 waarschuwing gegenereerd (voer 'cargo fix —bin "foo"' uit om 1 suggestie toe te passen)
  • Cargo heeft een aanbevelingsuitvoer toegevoegd voor het gebruik van de opdracht "cargo add" bij het installeren van een bibliotheek met de opdracht "cargo install".
  • Om de compilatietijd te verkorten, is het opnemen van foutopsporingsinformatie in buildscripts standaard gestopt. Als de build-scripts succesvol worden uitgevoerd, zal de wijziging geen zichtbare verschillen opleveren, maar als er fouten optreden, zal de traceback-dump minder informatie bevatten. Om het oude gedrag terug te geven aan Cargo.toml moet u het volgende toevoegen: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Een nieuw deel van de API is overgebracht naar de stabiele categorie, inclusief de methoden en implementaties van eigenschappen:
    • CStr::van_bytes_tot_nul
    • core::ffi::FromBytesUntilNulError
  • Het attribuut “const”, dat de mogelijkheid bepaalt om het in elke context te gebruiken in plaats van constanten, wordt gebruikt in de functies:
    • SocketAddr::nieuw
    • SocketAddr::ip
    • SocketAddr::poort
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::nieuw
    • SocketAddrV4::ip
    • SocketAddrV4::poort
    • SocketAddrV6::nieuw
    • SocketAddrV6::ip
    • SocketAddrV6::poort
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • De mogelijkheid toegevoegd om de vlaggen waar en onwaar te gebruiken in compilerargumenten.

Bron: opennet.ru

Voeg een reactie