Rust 1.52 programmeertaal release

De release van de systeemprogrammeertaal Rust 1.52, opgericht door het Mozilla-project, maar nu ontwikkeld onder auspiciën van de onafhankelijke non-profitorganisatie Rust Foundation, is gepubliceerd. De taal richt zich op geheugenveiligheid, biedt automatisch geheugenbeheer en biedt de middelen om een ​​hoge taakparallelliteit te bereiken zonder gebruik te maken van een garbage collector of runtime (runtime wordt teruggebracht tot basisinitialisatie en onderhoud van de standaardbibliotheek).

Het automatische geheugenbeheer van Rust elimineert fouten bij het manipuleren van pointers en beschermt tegen problemen die voortkomen uit geheugenmanipulatie op laag niveau, zoals toegang tot een geheugengebied nadat het is vrijgegeven, null pointer-dereferenties, bufferoverruns, enz. 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.

Belangrijkste innovaties:

  • Binding aan de volgorde van uitvoering van de opdrachten “cargo check” en “cargo clippy” verwijderd. Voorheen werd bij het aanroepen van "cargo clippy" na "cargo check" het clippy hulpprogramma (linter) niet gestart vanwege het ontbreken van cachescheiding voor deze controlemodi. Nu is dit probleem opgelost en doet de volgorde waarin “cargo clippy” en “cargo check” worden aangeroepen er niet meer toe.
  • Een nieuw deel van de API is overgebracht naar de stabiele categorie, waaronder de volgende methoden zijn gestabiliseerd:
    • Argumenten::as_str
    • teken::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partitie_punt
    • str::rsplit_once
    • str::split_once
  • Het attribuut "const", dat de mogelijkheid bepaalt om het in elke context te gebruiken in plaats van constanten, wordt gebruikt in methoden:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_kleine letters
    • char::eq_ignore_ascii_case
    • u8::to_ascii_hoofdletter
    • u8::to_ascii_kleine letters
    • u8::eq_ignore_ascii_case
  • Lintcontrole unsafe_op_in_unsafe_fn toegevoegd om te bepalen of onveilige code die in onveilige functies wordt gebruikt, wordt omlijst door onveilige blokken.
  • Het is toegestaan ​​om veranderlijke verwijzingen naar arrays om te zetten in de vorm van verwijzingen naar het type array-element. laat mut x: [gebruik; 2] = [0, 0]; laat p = &mut x als *mut usize; laat p = &mut x als *const usesize;
  • Er zijn 9 nieuwe cheques toegevoegd aan clippy (linter).
  • De vrachtpakketbeheerder ondersteunt nu het veld “manifest_path” in JSON voor pakketten. Ondersteuning toegevoegd voor het opgeven van licentie-informatie in SPDX 3.11-indeling voor de kratten.io-repository.
  • Het is toegestaan ​​om meerdere filters te specificeren bij het uitvoeren van tests. Als u bijvoorbeeld "cargo test - foo bar" uitvoert, worden alle tests uitgevoerd die overeenkomen met de maskers "foo" en "bar".
  • De standaard LLVM-toolkit is bijgewerkt naar LLVM 12.
  • Het derde niveau van ondersteuning is geïmplementeerd voor de s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl en powerpc-unknown-openbsd platforms. Het derde niveau omvat basisondersteuning, maar zonder geautomatiseerd testen, het publiceren van officiële builds of het controleren of de code kan worden gebouwd.

Bron: opennet.ru

Voeg een reactie