A gccrs a Rust nyelv teljes alternatív megvalósítása a GCC felett
Nemrégiben bejelentették, hogy a "gccrs" projekt , amelynek célja, hogy interfészt biztosítson a Rust nyelv és a GCC (GNU Compiler Collection) között, jó úton halad a GCC 13-ba való integrálás felé. A hónap elején megrendezett FOSDEM fejlesztői konferencián Arthur Cohen mérnök előadást tartott a gccrs-ről, felvázolva a munka jelenlegi állapotát.
Azok számára, akik nem ismerik a gccrs projektet, ez a Rust nyelv egy teljes alternatív implementációja a GCC tetején, azzal a céllal, hogy teljes mértékben integrálódjon a GNU eszközláncba.
A projekt eredete egy több évvel ezelőtti közösségi erőfeszítés, amikor a Rust még a 0.9-es verzión volt; a Mozilla által megalkotott nyelv annyi változáson ment keresztül, hogy a közösségi erőfeszítések nehezen tudtak felzárkózni.
Most, hogy a nyelv stabil, itt az ideje alternatív fordítók létrehozásának:
„A 2014-ben kezdődő (és 2019-ben újraindított) erőfeszítés 2020 óta tart, és rengeteg erőfeszítést tettünk és sokat fejlődtünk. Feltöltöttük a gccrs első verzióját a GCC-n belül. Tehát ha legközelebb telepíted a GCC 13-at, akkor benne lesz a gccrs.
Használhatja és elkezdheti feltörni, jelentheti a problémákat, amikor elkerülhetetlenül összeomlik és szörnyen meghal. Az egyik nagy dolog, amit csinálunk, azon dolgozunk, hogy a rustc tesztcsomag működjön” – mondta Arthur Cohen a hónap elején a FOSDEM konferencián tartott előadásában.
A rustc fordító tesztkészletének sikeres futtatása is továbbra is cél. Cohen szerint a Rust GCC felülete a régebbi, 1.49-es Rust libcore verziót is célozza.
A gccrs projekt GYIK-je megjegyzi, hogy az összes LLVM build technológia, amelyet a Rust használ, „hiányzik néhány GCC-kompatibilis háttérrendszerből, így a gccrs implementációja kitöltheti a hiányosságokat az integrált fejlesztésben való használathoz ”.
Megjegyzendő azonban, hogy a Rust-GCC fordító (gccrs) még nagyon korai szakaszban van, és még nem használható tényleges Rust programok fordítására.
A GCC csapat tavaly júliusban megszavazta a gccrs integrálását build csomagként. A projekt jelentősége a Linux kernel szempontjából rejlik. Valójában a Linux kernelt általában GCC-vel fordítják, de a tervek, miszerint memóriabiztonsági okokból a Rust nyelvet is használni lehetne a C mellett kernel kódhoz, folyamatosan haladnak.
A "Rust for Linux" projekt tavaly októberben hivatalosan beolvadt a fő Linux 6.1 Git fába, így a Rust a második Linux-fejlesztési nyelv lett, 31 év, kizárólag C-alapú fejlesztés után.
„Azt akarjuk, hogy a gccrs egy igazi Rust fordító legyen, és ne egy játékprojekt vagy valami olyan nyelvet fordítson le, amely Rust-nak néz ki, de nem Rust; valóban arra törekszünk, hogy ez a tesztcsomag működjön” – tette hozzá. A prezentáció során Cohen azt is elmondta, hogy bár a GCC 13 Rust felülete jól indul, még mindig sok a tennivaló. A kölcsönzött ellenőrző kód jelenleg feltűnően hiányzik, a beépített és belső modulok támogatása még mindig folyamatban van, és a Rust-kód Linuxra fordításának fontos mérföldkövét még el kell érni.
Emlékeztetőül, a Rust for Linux projekt célja egy új rendszerprogramozási nyelv bevezetése a Linux kernelbe. A szakértők szerint a Rustnak van egy kulcsfontosságú tulajdonsága, ami miatt nagyon érdekes második nyelvként megfontolni a Linux kernelhez: biztosítja, hogy ne forduljon elő nem definiált viselkedés (feltéve, hogy a nem biztonságos kód normális).
Ez magában foglalja az olyan hibák hiányát, mint az utólagos használat, a dupla felszabadítások, az adatversenyek stb. A kapcsolódó viták a C mellőzésének lehetősége körül forognak a Rust nyelv javára. Linus Torvalds, a Linux megalkotója azonban azt mondta, hogy a Rust for Linux projektnek nem ez a kimondott célja.
Végül érdemes megemlíteni, hogy bár a gccrs felületet egyesítették a közelgő GCC 13 kiadásban, még nem olyan állapotban van, hogy a legtöbb Rust fejlesztő ténylegesen használhatja a Rust hivatalos LLVM fordítójának alternatívájaként.
Legkésőbb jövőre, legalábbis a GCC 14-nél.
Forrás: https://fosdem.org/