Megjelent a Rust 1.97 az új alapértelmezett szimbólum-mangling sémával

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A Rust csapat bejelentette a Rust 1.97 kiadását, a programozási nyelv legújabb stabil verzióját. Az egyik fő újdonság, hogy a v0 szimbólum-mangling séma mostantól alapértelmezett a stabil Rust-ban.

Korábban a Rust az Itanium ABI-n alapuló mangling megoldást használta, ugyanazt, amit a C++ is. Ez a séma azonban több szempontból sem volt ideális Rust-hoz: például nem őrizte meg közvetlenül az általános típusparaméterek konkrét példányait, és bizonyos esetekben egyedi demanglingre volt szükség az ellentmondások miatt.

Az újabb v0 séma kifejezetten Rust-hoz készült, és Rust 1.59 óta választható opcióként már elérhető volt a -Csymbol-mangling-version=v0 fordítókapcsolóval. 2025 novembere óta ez az alapértelmezett a nightly buildekben is. A Rust 1.97-tel mostantól a stabil buildekben is ez lesz az alapértelmezett.

Hasznos újdonság érkezett a Cargo-ba is: mostantól beépítve támogatja, hogy a figyelmeztetések miként befolyásolják a build sikerességét. Eddig a projektek jellemzően RustFLAGS=-Dwarnings beállítást használtak CI környezetben, hogy a figyelmeztetéseket hibává alakítsák. A Rust 1.97-tel ezt már közvetlenül a Cargo tudja kezelni: a figyelmeztetések elnémíthatók, megjeleníthetők a build meghiúsítása nélkül, vagy hibaként is kezelhetők.

Például a fejlesztők ideiglenesen elnémíthatják a figyelmeztetéseket, miközben más hibákat javítanak, az alábbi paranccsal: CARGO_BUILD_WARNINGS=allow cargo check. CI-ben ehelyett használható a: CARGO_BUILD_WARNINGS=deny.

Ennek a megközelítésnek fontos előnye, hogy mivel a viselkedést a Cargo kezeli, a build cache érvényben marad. Így könnyebb ideiglenesen módosítani a figyelmeztetések kezelését anélkül, hogy felesleges újrafordításokat indítanánk. Az új beállítás ráadásul kombinálható a --keep-going kapcsolóval is, így a CI jobok az összes hibát és figyelmeztetést összegyűjthetik, ahelyett hogy az első hibánál leállnának.

A Rust 1.97 a Rustc linker kimenetének kezelését is módosítja. Korábban a Rustc elrejtette a linker üzeneteit, ha a linkelés sikeres volt, ami valódi problémákat is elfedhetett. A fordító mostantól alapértelmezés szerint figyelmeztetésként jeleníti meg a linker stderr kimenetét egy lint formájában.

Ha például a linker jelzi, hogy figyelmen kívül hagy egy elavult optimalizálási beállítást, a Rustc ezt mostantól figyelmeztetésként mutatja, ahelyett hogy elnyelné. A Rust csapat szerint már több hibát is sikerült kijavítani a nightly ágon ennek a változtatásnak köszönhetően.

Emellett az új linker_messages lint alapértelmezés szerint engedélyezett, de külön kezeli a rendszer a többi általános figyelmeztetés-lint csoporttól. A fejlesztők szerint ez szándékos, mivel a linker kimenete platformonként eltér, és kevésbé kontrollált, mint a szokásos fordítói diagnosztika. A nem kívánt linker figyelmeztetések a Cargo.toml lints szekciójában némíthatók el.

Végül, ahogy minden stabil Rust kiadás, a Rust 1.97 is tartalmaz újonnan stabilizált API-kat. Ilyen például a Default a RepeatN típushoz, a Copy az ffi::FromBytesUntilNulError típushoz, a Send a std::fs::File számára UEFI-n, valamint több egész és NonZero egész metódus, mint az isolate_highest_one, isolate_lowest_one, highest_one, lowest_one és bit_width. Emellett a char::is_control mostantól const környezetben is stabil.

További részletekért lásd a bejelentést. A meglévő Rust felhasználók szokás szerint a Rustup eszközzel frissíthetnek, a Rustup update stable parancs futtatásával.