Új funkciók és fejlesztések a Rust 1.84-ben

A programozási nyelv legújabb verziója, az 1.84-es kiadás 2025. január 9-én jelent meg, számos izgalmas újítást és fejlesztést hozva magával. Ez a frissítés jelentős előrelépéseket tartalmaz a kód biztonságában, a fejlesztői élményben és a teljesítményben. Nézzük meg részletesen, mit kínál az új verzió!

Szigorú származási API-k bevezetése

A szigorú származási (strict provenance) API-k a Rust 1.84-es verziójának egyik fontos újítása, amely a memóriakezelés biztonságosabbá és átláthatóbbá tételét célozza. Ezek az API-k lehetővé teszik a fejlesztők számára, hogy explicit módon kezeljék a mutatók származását, elkerülve az egész szám és mutató közötti kétértelmű átalakításokat.

A szigorú származás lényege

A szigorú származás koncepciója azon alapul, hogy egy mutató nem csupán egy egyszerű cím vagy egész szám, hanem további információkat is hordoz magában:

  1. Cím: A memóriában lévő tényleges hely, amelyre a mutató mutat.
  2. Származás: Meghatározza, hogy a mutató milyen memóriaterülethez férhet hozzá jogosultan.

A származásnak három fő komponense van:

  1. Térbeli: Meghatározza, mely memóriacímekhez férhet hozzá a mutató.
  2. Időbeli: Megadja azt az időtartamot, amíg a mutató hozzáférhet a memóriához.
  3. Módosíthatóság: Meghatározza, hogy a mutató csak olvasásra vagy írásra is használható-e.

Szigorú származási API-k használata

A szigorú származási API-k bevezetésével a Rust célja, hogy elkerülje a mutatók és egész számok közötti közvetlen átalakításokat. Ehelyett olyan metódusokat biztosít, amelyek explicit módon kezelik a származást:

  • with_addr: Ez a metódus lehetővé teszi egy új mutató létrehozását egy adott címmel, miközben megőrzi az eredeti mutató származását.
  • map_addr: Egy kényelmi metódus, amely lehetővé teszi a mutató címének módosítását a származás megtartása mellett.
  • addr: Ez a metódus visszaadja a mutató címét, de garantálja, hogy ez nem része egy mutató-egész szám-mutató átalakítási körnek.

Előnyök és használat

A szigorú származási API-k használata több előnnyel jár:

  • Biztonságosabb kód: Csökkenti a memóriahibák és biztonsági rések kockázatát.
  • Jobb optimalizáció: A fordítóprogram pontosabban értelmezheti a kódot.
  • Kompatibilitás: Lehetővé teszi olyan eszközök használatát, mint a Miri, amelyek a mutatók helytelen használatát diagnosztizálják.

A legtöbb kódnak nem szükséges változtatásokat eszközölnie a szigorú származás követéséhez. Főként azokban az esetekben van szükség módosításra, ahol egész számokat alakítanak át mutatókká. Ilyenkor gondoskodni kell arról, hogy megmaradjon egy megfelelő származással rendelkező mutató, amely lehetővé teszi a memória elérését.

MSRV-tudatos függőségkezelő

A Rust 1.84 stabilizálja a minimálisan támogatott Rust verzió (MSRV) tudatos függőségkezelőt. Ez a funkció előnyben részesíti azokat a függőségverziókat, amelyek kompatibilisek a projekt deklarált MSRV-jével.

  • Csökkenti a karbantartók munkáját a régebbi eszközkészletek támogatásában.
  • A fejlesztőknek nem kell manuálisan kiválasztaniuk a régebbi verziókat minden egyes függőséghez.
  • A funkció bekapcsolható a .cargo/config.toml fájlon keresztül.

Új trait solver implementáció

A Rust fordítóprogram egy új implementációra vált át a trait solver esetében. Ez a következő generációs trait solver a Rust típusrendszerének egy kulcsfontosságú komponensét implementálja újra.

  • Felelős a trait-korlátok ellenőrzéséért.
  • Más részei is használják a típusrendszernek, például a normalizálás és a típusok egyenlősége.
  • Az 1.84-es verzióban az új solver a trait impl-ek koherenciájának ellenőrzésére szolgál.
  • Javítja az előző implementáció néhány elméleti helyességi problémáját.

A frissítés telepíthető a rustup update stable parancs használatával azoknál, akiknek már van telepítve egy korábbi verzió. Akik még nem fejlesztettek Rust-ban, azoknak ez is egy kiváló alkalom lehet arra, hogy kipróbálják ezt a folyamatosan fejlődő és egyre népszerűbb programozási nyelvet.   

Osszd meg ezt a cikket
Tízszeres gyorsulás a TypeScript motor Go nyelvre való átírása után
A TypeScript csapata többször próbálta már az eredeti JavaScript motort átírni, más programozási nyelvre, de ez idáig ezek a próbálkozások nem hozták a kívánt eredményt. A napokban azonban bejelentették, hogy a Go nyelvre történő átírással áttörést értek el.
Alkalmazás mentes élmény a Deutsche Telekomtól
A Deutsche Telekom a spanyol Telefónica-t követve digitális asszisztens, azaz egyfajta mesterséges komornyik szolgáltatást vezet be saját telefonjain. A megoldást az év második felére ígérik az új készülékeken. A régebbi készülékek esetében is nyújtanak majd valamiféle mesterséges intelligencián alapuló szolgáltatást ami a Magenta AI alatt lesz elérhető.
Pénz keresés Poe App-okkal akár programozási ismeretek nélkül is
A Quora nemrégiben bemutatta a Poe Apps nevű új funkcióját, amely lehetővé teszi a felhasználók számára, hogy egyedi, mesterséges intelligencia által támogatott alkalmazásokat hozzanak létre és osszanak meg a Poe platformon. A Quora azt ígéri, hogy feliratkozónként akár 100 dollárt is kaphatunk és 10 000 dollárt ezer üzenetenként.
A Linux kernel dráma közepette érkezett a Rust 1.85.0
Az 1.85 a 2024-es kiadás egy újabb javítása, amely tovább javítja memóriabiztonságot és az egyidejűségi modelleket és igyekszik egy jobb és megbízhatóbb eszközöket nyújtani teljesítménykritikus rendszerek fejlesztéséhez. A Rust elfogadtatása azonban, pont ott halad a legnehezebben, ahol a leginkább létjogosultsága van, a Linux kernel fejlesztésében.