Rust 1.69 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.69 általános célú programozási nyelv. A nyelv a memória biztonságára összpontosít, és biztosítja az eszközöket a munka magas párhuzamosságának eléréséhez, miközben elkerüli a szemétgyűjtő és a futási időt (a futásidő a szabványos könyvtár alapvető inicializálására és karbantartására csökken).

A Rust memóriakezelési módszerei megóvják a fejlesztőt a mutatók manipulálása során előforduló hibáktól, és megóvják az alacsony szintű memóriakezelésből adódó problémáktól, mint például a memóriaterület elérése annak felszabadítása után, a nulla mutatók hivatkozásának megszüntetése, a puffertúllépések stb. A programkönyvtárak terjesztéséhez, a buildek biztosításához és a függőségek kezeléséhez a projekt fejleszti a Cargo csomagkezelőt. A crates.io tároló támogatja a könyvtárak tárolását.

A memóriabiztonságot a Rust a fordítási időben biztosítja a referenciaellenőrzés, az objektumok tulajdonjogának nyomon követése, az objektumok élettartamának (hatóköreinek) nyomon követésével és a memória-hozzáférés helyességének értékelésével a kód végrehajtása során. A Rust védelmet nyújt az egész számok túlcsordulása ellen is, megköveteli a változó értékek kötelező inicializálását használat előtt, jobban kezeli a hibákat a szabványos könyvtárban, alapértelmezés szerint alkalmazza a megváltoztathatatlan hivatkozások és változók koncepcióját, erős statikus gépelést kínál a logikai hibák minimalizálása érdekében.

Főbb újítások:

  • A Cargo csomagkezelő megvalósítja az automatikusan feloldható figyelmeztetések észlelését és a megfelelő javaslatokat a "cargo fix" vagy a "cargo clippy --fix" futtatásához. figyelmeztetés: nem használt import: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | std::hash::hash; | ^^^^^^^^^^^^^^^^ | = Megjegyzés: '#[warn(unused_imports)]' alapértelmezés szerint be van kapcsolva: a 'foo' (bin "foo") 1 figyelmeztetést generált (1 javaslat alkalmazásához futtassa a 'cargo fix --bin "foo"' parancsot)
  • A Cargo hozzáadva a „cargo add” parancs használatára vonatkozó ajánlás megjelenítéséhez, amikor egy könyvtárat a „cargo install” paranccsal próbál telepíteni.
  • A fordítási idő csökkentése érdekében az összeállítási szkriptekben a hibakeresési információk alapértelmezés szerint le vannak tiltva. Ha az összeállítási szkriptek sikeresen futnak, a módosítás nem okoz látható változást, de ha nem sikerül, a visszakövetési dump kevesebb információt tartalmaz. A Cargo.toml régi viselkedésének visszaállításához adja hozzá: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Az API új része átkerült a stabil kategóriába, beleértve a tulajdonságok módszereit és megvalósításait is:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • A "const" attribútum, amely meghatározza, hogy konstansok helyett bármilyen környezetben használható, a függvényekben használatos:
    • SocketAddr::új
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::új
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::új
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Hozzáadtuk az igaz és hamis jelzők használatát a fordítói argumentumokban.

Forrás: opennet.ru

Hozzászólás