Rust 1.43 programspråk release

publiceras version av systemprogrammeringsspråk Rost 1.43grundades av Mozilla-projektet. Språket fokuserar på säker minneshantering, ger automatisk minneshantering och ger möjlighet att uppnå hög jobbparallellism samtidigt som man undviker användningen av en sophämtare och runtime.

Rusts automatiska minneshantering frigör utvecklaren från pekarmanipulation och skyddar mot problem som uppstår från minnesmanipulation på låg nivå, såsom efterfri minnesåtkomst, nollpekaredereferenser, buffertöverskridningar och liknande. En pakethanterare utvecklas för att distribuera bibliotek, säkerställa montering och hantera beroenden av projektet. Laddning, vilket gör att du kan få de bibliotek du behöver för programmet med ett klick. Ett arkiv stöds för värdbibliotek lådor.io.

Den huvudsakliga innovationer:

  • Makron ger möjligheten att använda fragment av element för att omvandla dem till kod för egenskaper (drag), implementeringar (impl) eller externa block. Till exempel:

    makro_regler! mac_trait {
    ($i:item) => {
    egenskap T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Kommer att leda till generation:

    egenskap T {
    fn foo() {}
    }

  • Förbättrad typdetektering av primitiver, referenser och binära operationer.
    Till exempel kommer följande kod, som tidigare orsakade ett fel, nu att kunna kompileras (Rust bestämmer nu korrekt att 0.0 och &0.0 måste vara av typen f32):

    låt n: f32 = 0.0 + &0.0;

  • En ny miljövariabel CARGO_BIN_EXE_{name} har lagts till i Cargo, som ställs in när man bygger integrationstester och låter dig bestämma hela sökvägen till den körbara filen som definieras i avsnittet "[[bin]]" i paketet.
  • Om satser tillåts använda attribut som "#[cfg()]".
  • Biblioteket ger möjlighet att använda associerade konstanter direkt för heltals- och bråktyper, utan att importera en modul. Till exempel kan du omedelbart skriva u32::MAX eller f32::NAN utan att först ange "use std::u32" och "use std::f32".
  • Ny modul tillagd primitiva, som återexporterar Rust primitiva typer, till exempel när du behöver skriva ett makro och se till att typerna inte är dolda.
  • En ny del av API har överförts till kategorin stabil, inklusive stabiliserad

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 och
    iter::en gång_med.

Källa: opennet.ru

Lägg en kommentar