A Rust programozási nyelv 1.81.0 verziója megérkezett

A Rust csapat örömmel jelentette be a Rust új verzióját, az 1.81.0-t. Ez egy olyan programozási nyelv, amely mindenkinek lehetőséget ad megbízható és hatékony szoftverek készítésére.

A Rust programozási nyelv 1.81.0 verziója megérkezett

Legfontosabb újdonságok az 1.81.0 stabil verzióban

core::error::Error
Az 1.81 stabilizálja a core-ban lévő Error trait-et, lehetővé téve a trait használatát #![no_std] könyvtárakban. Ez elsősorban azt segíti elő, hogy a programnyelv ökoszisztémája egységes Error trait-et használjon, függetlenül attól, milyen környezetekre irányul a könyvtár.

Új rendezési algoritmusok
A standard könyvtár mind stabil, mind instabil rendezési implementációit új algoritmusokra frissítették, javítva a futási teljesítményt és a fordítási időt.

Ezen felül mindkét új rendezési algoritmus megpróbálja felismerni az Ord helytelen implementációit, amelyek megakadályoznák a rendezett eredmény létrehozását, és most már pánikot generálnak az ilyen esetekben, ahelyett, hogy véletlenszerűen elrendezett adatokat adnának vissza. Az ilyen pánikokat tapasztaló felhasználóknak érdemes átvizsgálniuk a rendezési implementációikat, hogy biztosítsák, megfelelnek a PartialOrd és Ord követelményeinek.

#[expect(lint)]
Az 1.81 stabilizál egy új lint szintet, az expect-et, amely lehetővé teszi egy adott lint megjegyzését, és figyelmeztet, ha nem történik meg. Ennek az a célja, hogy ideiglenesen elnémítsa a lint figyelmeztetéseket, például hibák miatt vagy refaktorálás során, miközben biztosítani szeretnék, hogy a lint már nem szükséges.

Például, ha egy kódbázist új Clippy lint korlátozásra, mint az „undocumented_unsafe_blocks”, szeretnél átállítani, használhatod a #[expect(clippy::undocumented_unsafe_blocks)] attribútumot a váltás során, és biztosíthatod, hogy minden unsafe blokk dokumentálása után átállhatsz a lint szigorítására.

A Clippy két új lintet is bevezetett ennek a funkciónak a használatára és a meglévő attribútumok áttelepítésére:

  • clippy::allow_attributes, amely az allow attribútumok helyett #[expect]-et követel, vagy az #[allow] attribútumokat #[expect]-re cseréli.
  • clippy::allow_attributes_without_reason, amely azt követeli, hogy az #[allow] attribútumoknak indoka legyen.

Lint indokok

A lint szint megváltoztatása gyakran valamilyen konkrét okból történik. Például, ha a kód egy olyan környezetben fut, amely nem támogatja a lebegőpontos műveleteket, használhatod a Clippy-t ennek észlelésére a #![deny(clippy::float_arithmetic)] segítségével. Azonban, ha egy új fejlesztő látja ezt a lintet, lehet, hogy keresnie kell egy megjegyzést, amely magyarázza a tiltás okát. Az 1.81-ben ezt már közvetlenül a fordítóüzenetben is megteheted:

error: floating-point arithmetic detected
 --> src/lib.rs:4:5
  |
4 |     a + b
  |     ^^^^^
  |
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_arithmetic
  = note: no hardware float support
note: the lint level is defined here
 --> src/lib.rs:1:9
  |
1 | #![deny(clippy::float_arithmetic, reason = "no hardware float support")]
  |         ^^^^^^^^^^^^^^^^^^^^^^^^

Kompatibilitási megjegyzések

Pánik hook és pánik kezelő argumentumok szétválasztása
A std::panic::PanicInfo át lett nevezve std::panic::PanicHookInfo-ra. A régi név továbbra is működik majd aliasként, de az 1.82.0-tól kezdve figyelmeztetést ad a használata.

Rust frissítése az új verzióra

Ha már van telepítve korábbi Rust verziód, a rustup segítségével, az 1.81.0-t az alábbi parancs kiadásával szerezheted meg:

$ rustup update stable

Ha még nincs telepítve a rustup, telepítheted azt a projekt weboldalán található leírás alapján,ezen felül elolvashatod az 1.81.0 kiadási megjegyzéseit további részletekért.

A fejlesztők megjegyzik,ha szeretnél segíteni a jövőbeli kiadások tesztelésében, fontolóra veheted, hogy helyben frissíts a beta csatornára (rustup default beta) vagy a nightly csatornára (rustup default nightly). Kérésük az, hogy aki tesztel az feltétlenül jelentsen minden hibát, amellyel találkozik!