Rust 1.54 programozási nyelv kiadás

Megjelent a Mozilla projekt által alapított, de immár a Rust Foundation független non-profit szervezet égisze alatt kifejlesztett Rust 1.54 rendszerprogramozási nyelv kiadása. A nyelv a memória biztonságára összpontosít, automatikus memóriakezelést biztosít, és biztosítja a magas szintű párhuzamosság elérését szemétgyűjtő vagy futási idő nélkül (a futásidő a szabványos könyvtár alapvető inicializálására és karbantartására csökken).

A Rust automatikus memóriakezelése kiküszöböli a mutatók manipulálása során fellépő hibákat, és védelmet nyújt az alacsony szintű memóriamanipulációból eredő problémák ellen, mint például a memóriaterület felszabadítása utáni hozzáférés, nullmutató hivatkozások, puffertúllépések stb. A programkönyvtárak terjesztésére, az összeállítás biztosítására és a függőségek kezelésére a projekt a Cargo csomagkezelőt fejleszti. A crates.io tároló támogatja a könyvtárak tárolását.

Főbb újítások:

  • Hozzáadtuk a funkciószerű makrók attribútumokon belüli használatának lehetőségét (eljárási makrók és a „macro_rules!” makróval létrehozott makrók). Az ilyen makrókat a „!” szimbólum különbözteti meg a függvényektől. a név után (makró!(...)) és a makró forrásszövegének helyettesítése függvényhívás generálása helyett. Az attribútumokon belüli makrók meghívása hasznos lehet más fájlokból származó tartalom megjegyzések dokumentálásában. Például a README fájl tartalmának és a szkript végrehajtásának eredményének beillesztéséhez megadhatja: #![doc = include_str!("README.md")] #[elérési út = concat!(env!("OUT_DIR" "), "/generated.rs" )] mod generált;
  • A wasm32 platform beépített fordítói funkcióit (Intrinsics) stabilizálták, lehetővé téve a SIMD utasítások használatát a WebAssembly-ben. A legtöbb funkció, például a v128_bitselect, „biztonságos” módban érhető el, de néhány, mutatókkal működő funkció (például v128_load) „nem biztonságos” marad.
  • Visszatért a növekményes fordítás alapértelmezett használata, amely lehetővé teszi, hogy csak a kód megváltozott részeit építsd újra, ami jelentősen csökkentheti a projekt felépítésének idejét a kisebb változtatások utáni újrafordításkor. A növekményes fordítást az 1.52.1-es kiadásban letiltottuk a rejtett hibák miatt, amelyek azután jelentek meg, hogy a lemez gyorsítótárából történő adatbetöltés további ellenőrzését is elvégezték.
  • Az API-k új része átkerült a stabil kategóriába, beleértve a következő stabilizáltakat:
      BTreeMap::into_keys
    • BTreeMap::in_values
    • HashMap::into_keys
    • HashMap::in_values
    • arch::wasm32
    • VecDeque::bináris_keresés
    • VecDeque::binary_search_by
    • VecDeque::bináris_keresés_kulcs szerint
    • VecDeque::partíciós_pont
  • Hozzáadott opciók a rakományfához: „—szilva " egy csomag eltávolítása a függőségi gráfból, "-depth" - csak egy adott egymásba ágyazott szint elemeinek megjelenítése a függőségi fában, "-edges no-proc-macro" - az eljárási makrófüggőségek elrejtése.

Forrás: opennet.ru

Hozzászólás