Ú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
Megjelent a TypeScript 5.9
A TypeScript 5.9 egyik legfontosabb újítása a halasztott modulkiértékelés (deferred module evaluation) támogatása az import defer szintaxison keresztül, amely az ECMAScript egy jövőbeli szabványjavaslatát ülteti át a gyakorlatba.
Ennyi ‘utálom a CSS-t’ cikk után hogy lehet, hogy a CSS mégis ennyire sikeres?
Ha valaha rákerestél arra, hogy „miért utálják a fejlesztők a CSS-t”, akkor tudod: az interneten a siralmak özöne vár. Fórumposztok, tweetek, mémek és hosszú blogbejegyzések ezrei panaszkodnak a CSS „érthetetlen viselkedésére”, a „nem-igazi programozás” mivoltára vagy a „csak dizájnereknek való vacak” narratívára. Mintha a fejlesztői kultúra egyik csendes alaptétele lenne, hogy a CSS egy szükséges rossz: valami, amit csak akkor használunk, ha muszáj, és lehetőleg minél gyorsabban letudjuk. De ha ennyire sokan utálják — miért nem tűnt még el? Sőt, miért látjuk azt, hogy a CSS szemantikáját egyre több nem-webes UI platform is lemásolja?
A Replit vezérigazgatója szerint emberibb jövő vár a programozókra az MI-nek köszönhetően
A mesterséges intelligencia térnyerése számos iparágat átalakít, és a szoftverfejlesztés sem kivétel. Sokan aggódnak, hogy az MI elveszi majd a munkahelyeket, és disztópikus jövőképeket festenek. Azonban Amjad Masad, a Replit vezérigazgatója szerint a valóság sokkal inkább az, hogy az MI emberibbé, interaktívabbá és sokoldalúbbá teszi a munkát. Ezt a gondolatot fejtette ki a Y Combinator YouTube csatornáján adott interjújában, amelyből a cikk főbb információi is származnak.
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.
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.