Ú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
A szoftverek fejlődésének új korszaka
Az elmúlt évtizedekben a szoftverfejlesztés alapvetően meghatározta digitális világunkat, de a legújabb technológiai áttörések új korszakot nyitnak meg, ahol a számítógépek programozása gyökeresen átalakul. Andrej Karpathy, a Tesla korábbi mesterséges intelligencia igazgatója szerint a szoftverek fejlődése a korábbi évtizedek lassú változása után az utóbbi években drámai gyorsulást mutatott, ami alapjaiban írja újra a programozásról alkotott képünket.
A Google Cloud Run GPU-támogatást biztosít mesterséges intelligencia projektekhez
A Google Cloud hivatalosan is elindította az NVIDIA GPU támogatás általános elérhetőségét a Cloud Run számára, ami jelentős előrelépést jelent a szerver nélküli platformjában. Ez a frissítés célja, hogy a fejlesztőknek költséghatékony, skálázható megoldást nyújtson a GPU-alapú feladatokhoz, különösen az AI-következtetéshez és a kötegelt feldolgozáshoz kapcsolódóakhoz. Ezzel válaszol a felhőben elérhető, GPU-erőforrások iránti növekvő igényre, miközben megőrzi azokat a kulcsfontosságú funkciókat, amelyek a Cloud Run-t népszerűvé tették a fejlesztők körében.
GitHub-integrációval erősít a Gemini Advanced
A mesterséges intelligencia alapú fejlesztői eszközök terén nincs hiány újabb és újabb fejlesztésekben. A Google ezzel kapcsolatban most bejelentette, hogy közvetlen GitHub-integrációval bővíti Gemini Advanced nevű prémium AI-asszisztensét. A lépés nem csupán válasz a rivális OpenAI hasonló fejlesztéseire, hanem egyben komoly előrelépés is a fejlesztői munkafolyamatok hatékonyságának növelésében.
Az Apple Anthropic-ra támaszkodva kíván saját „Vibe-Coding” platformot létrehozni
Az Apple számos nehézséggel nézett szembe az utóbbi időben saját mesterséges intelligencia megoldásainak kifejlesztése során, ezért talán nem meglepő, hogy a továbbiakban inkább külső AI-szakértelemre támaszkodna a további fejlesztések érdekében. Most úgy döntöttek, hogy az Anthropic-al egyesítik erőiket egy forradalmi „vibe-coding” szoftverplatform létrehozására, amely a generatív mesterséges intelligenciát használja fel a programozók kódjának írására, szerkesztésére és tesztelésére - derül ki a legfrissebb jelentésekből.
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.
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.

Az elmúlt néhány napban megjelent Linux disztribúció frissítések