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