Rust 1.43 programozási nyelv kiadás

közzétett rendszer programozási nyelv kiadása Rozsda 1.43a Mozilla projekt alapította. A nyelv a biztonságos memóriakezelésre összpontosít, automatikus memóriakezelést biztosít, és biztosítja a magas párhuzamos munkavégzés elérését, miközben elkerüli a szemétgyűjtő és futásidejű.

A Rust automatikus memóriakezelése megszabadítja a fejlesztőt a mutatómanipulációtól, és megvédi az alacsony szintű memóriakezelésből eredő problémákat, mint például az utólagos memóriaelérések, a nulla mutatóhivatkozások, a puffertúllépések és hasonlók. Csomagkezelő fejlesztés alatt áll a könyvtárak terjesztésére, az összeállítás biztosítására és a függőségek projekt általi kezelésére. Szállítmány, amely lehetővé teszi, hogy egy kattintással megszerezze a programhoz szükséges könyvtárakat. Egy tárhely támogatott a könyvtárak fogadására ládák.io.

A főbb innovációk:

  • A makrók lehetővé teszik az elemek töredékeinek felhasználását, hogy azokat jellemzők (vonás), megvalósítások (impl) vagy külső blokkok kódjává alakítsák. Például:

    makro_szabályok! mac_trait {
    ($i:item) => {
    T tulajdonság { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Generációhoz vezet:

    tulajdonság T {
    fn foo() {}
    }

  • A primitívek, hivatkozások és bináris műveletek továbbfejlesztett típusérzékelése.
    Például a következő kód, amely korábban hibát okozott, most lefordítható lesz (a Rust most helyesen határozza meg, hogy a 0.0 és a &0.0 f32 típusú legyen):

    legyen n: f32 = 0.0 + &0.0;

  • Egy új CARGO_BIN_EXE_{name} környezeti változó került hozzáadásra a Cargo-hoz, amely az integrációs tesztek során kerül beállításra, és lehetővé teszi a csomag „[[bin]]” szakaszában meghatározott végrehajtható fájl teljes elérési útjának meghatározását.
  • Ha az utasítások használhatnak attribútumokat, például "#[cfg()]".
  • A könyvtár lehetőséget biztosít a kapcsolódó konstansok közvetlen használatára egész és tört típusokhoz, modul importálása nélkül. Például azonnal beírhatja az u32::MAX vagy az f32::NAN parancsot anélkül, hogy először megadná a „use std::u32” és „use std::f32” parancsot.
  • Új modul hozzáadva primitív, amely újraexportálja a Rust primitív típusokat, például ha makrót kell írnia, és meg kell győződnie arról, hogy a típusok nincsenek elrejtve.
  • Az API új része átkerült a stabil kategóriába, beleértve a stabilizáltat is

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 és
    iter::egyszer_val.

Forrás: opennet.ru

Hozzászólás