Rust 1.52 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.52 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:

  • Eltávolítottuk a „cargo check” és a „cargo clippy” parancsok végrehajtási sorrendjéhez való kötődést. Korábban a "cargo clippy" hívása a "cargo check" után nem indította el a clippy segédprogramot (linter), mivel ezeknél az ellenőrzési módoknál nem volt elkülönítve a gyorsítótár. Most ez a probléma megoldódott, és a „cargo clippy” és a „cargo check” elnevezési sorrend már nem számít.
  • Az API új része átkerült a stabil kategóriába, beleértve a következő módszereket is stabilizálva:
    • Érvek::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_onece
  • A „const” attribútum, amely meghatározza annak lehetőségét, hogy konstansok helyett tetszőleges környezetben használható legyen, a metódusokban használatos:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_nagybetűs
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Az unsafe_op_in_unsafe_fn szöszellenőrzés hozzáadva annak megállapítására, hogy a nem biztonságos függvényekben használt nem biztonságos kódot nem biztonságos blokkok keretezik-e.
  • Megengedett, hogy a tömbökbe mutálható mutatókat a tömbelem típusára mutató mutatók formájába öntsünk. let mut x: [usize; 2] = [0, 0]; legyen p = &mut x mint *mut use; legyen p = &mut x mint *const use;
  • 9 új csekket adtunk a clippy-hez (linter).
  • A rakománycsomag-kezelő mostantól támogatja a „manifest_path” mezőt a JSON-ban a csomagokhoz. Támogatás hozzáadva a licencinformációk SPDX 3.11 formátumban történő megadásához a crates.io tárhoz.
  • A tesztek futtatásakor több szűrő megadása is megengedett, például a "cargo test - foo bar" futtatása minden olyan tesztet futtat, amely megfelel a "foo" és a "bar" maszkoknak.
  • Az alapértelmezett LLVM eszközkészlet LLVM 12-re frissült.
  • A támogatás harmadik szintje az s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl és powerpc-unknown-openbsd platformokon valósult meg. A harmadik szint alaptámogatást foglal magában, de automatikus tesztelés, hivatalos buildek közzététele vagy annak ellenőrzése nélkül, hogy a kód összeállítható-e.

Forrás: opennet.ru

Hozzászólás