Linus Torvalds kritikája után javították a Rust formázást a Linux 6.18-ban

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

A Linux 6.18 fejlesztési ciklusa nem telt el különösebb dráma nélkül: Linus Torvalds élesen bírálta a Rust nyelv automatikus kódformázását, amelyet „értelmetlen és teljesen őrült” megoldásnak nevezett. A fő probléma az volt, hogy a Rust formázóeszköze, a rustfmt, több sornyi import utasítást (import statements) egyetlen sorba sűrített, ami Torvalds szerint „szemét” („garbage”). A fejlesztők mostanra reagáltak a kritikára: a Linux 6.18-rc2 verzió előtt néhány órával beolvadtak a hibajavítások és a frissített irányelvek.

A Rust formázási probléma háttere

A Rust for Linux projekt célja, hogy a Rust programozási nyelvet (Rust programming language) hivatalosan is beemelje a Linux kernel fejlesztésébe, kiegészítve a hagyományos C kódot. A nyelv biztonságos memóriahasználata és modern eszköztára ígéretes lehetőségeket kínál, de ahogy most is látszik, nem minden illeszkedik zökkenőmentesen a kernel szigorú fejlesztési elveihez.

Torvalds kifogása elsősorban a kódolási stílus (coding style) körüli automatizmusokra vonatkozott. A rustfmt ugyanis alapértelmezés szerint a több soros use deklarációkat egyetlen sorba tömöríti. Ez viszont megnehezíti az összeolvasztásokat (merging) és az újrabázisolást (rebasing), mert a kisebb eltérések is komoly konfliktusokat okozhatnak a verziókezelésben.

Torvalds korábban is következetesen képviselte, hogy a kód formázását az olvashatóság és az egyértelműség szolgálja, nem az eszközök automatikus szabályai.

Miguel Ojeda és a Rust fejlesztőcsapat válasza

A Rust for Linux vezető fejlesztője, Miguel Ojeda, a legutóbbi frissítéssel együtt közölte, hogy javították a formázási eljárást, és ideiglenes megoldást is alkalmaznak, amíg tartósabb módot nem találnak.

Ojeda így fogalmazott a hivatalos bejegyzésben:

„A rustfmt alapértelmezés szerint úgy formázza az importokat, hogy azok összeolvadjanak, ami összeolvasztási és újraalapozási ütközéseket okozhat. A dokumentációban mostantól rögzítjük, hogy ezt ideiglenesen egy üres megjegyzéssel (trailing empty comment) kerüljük meg, és ezzel ismét rustfmt-tiszta (rustfmt-clean) lesz a forrásfa.”

Ez a „trailing empty comment” trükk egy apró, de hatékony kódolási fogás, amely megakadályozza, hogy a formázó eszköz összevonja az egymás alatti importokat. A fejlesztők egyúttal frissítették a Rust dokumentációját is, hogy a jövőbeni hozzájárulások már e szerint készüljenek.

Tisztább kód a Linux 6.18-rc2-ben

A javítások már bekerültek a Linux Git főágába (mainline Git), és a Linux 6.18-rc2 kiadásban lesznek először láthatók. Ez azt jelenti, hogy a Rust-kód mostantól egységesebb formázást és könnyebb karbantarthatóságot kínál, ami elengedhetetlen a kernel fejlesztésének hosszú távú stabilitásához.

Bár a Rust integrációja még mindig viszonylag új a Linuxban, a fejlesztők gyors reagálása és a dokumentáció átdolgozása azt mutatja, hogy a közösség komolyan veszi a Torvalds-féle minőségi elvárásokat. Mindez közelebb viszi a projektet ahhoz, hogy a Rust a jövőben a Linux kernel szerves, megbízható része legyen.