gccrs bo vključen v GCC 13

gccrs

gccrs je popolna alternativna izvedba jezika Rust nad GCC

Nedavno je bilo objavljeno, da je projekt "gccrs" , katerega cilj je zagotoviti vmesnik za jezik Rust za GCC (GNU Compiler Collection), na dobri poti, da se integrira v GCC 13. Na konferenci razvijalcev FOSDEM v začetku tega meseca je inženir Arthur Cohen predstavil gccrs in predstavil trenutno stanje dela.

Za tiste, ki niso seznanjeni s projektom gccrs, gre za popolno alternativno implementacijo jezika Rust na vrhu GCC, s ciljem popolne integracije v orodjarno GNU.

Izvor tega projekta je prizadevanje skupnosti pred nekaj leti, ko je bil Rust še v različici 0.9; jezik, ki ga je ustvarila Mozilla, je bil predmet toliko sprememb, da ga je skupnost težko dohitela.

Zdaj, ko je jezik stabilen, je čas, da ustvarimo alternativne prevajalnike:

»Prizadevanje se je začelo leta 2014 (in ponovno zagnalo leta 2019), trajalo je od leta 2020 in vložili smo veliko truda in velik napredek. V GCC smo naložili prvo različico gccrs. Torej, ko boste naslednjič namestili GCC 13, bo imel notri gccrs.

Lahko ga uporabite in začnete hekati, lahko prijavite težave, ko se neizogibno zruši in grozljivo umre. Ena velika stvar, ki jo počnemo, je, da delamo na tem, da bo testna zbirka rustc delovala,« je dejal Arthur Cohen med svojo predstavitvijo na konferenci FOSDEM v začetku tega meseca.

Cilj ostaja tudi možnost uspešnega zagona testnega paketa prevajalnika rustc. Po Cohenovih besedah ​​je Rustov vmesnik GCC namenjen tudi starejši različici knjižnice Rust libcore 1.49.

V pogostih vprašanjih projekta gccrs je navedeno, da vsem tehnologijam gradnje LLVM, ki jih uporablja Rust, "manjka nekaj GCC-združljivih ozadij, zato lahko implementacija gccrs zapolni vrzeli za uporabo v integriranem razvoju ."

Upoštevajte pa, da je prevajalnik Rust-GCC (gccrs) še vedno v zelo zgodnji fazi in ga še ni mogoče uporabiti za prevajanje dejanskih programov Rust.

Ekipa GCC je julija lani glasovala za odobritev integracije gccrs kot gradbenega paketa. Pomen tega projekta je v njegovem vplivu na jedro Linuxa. Pravzaprav je jedro Linuxa običajno zgrajeno z GCC, vendar načrti, da bi se zaradi varnosti pomnilnika za kodo jedra lahko uporabljal tudi jezik Rust, vztrajno napredujejo.

Projekt "Rust for Linux" se je uradno združil v glavno drevo Linux 6.1 Git oktobra lani, s čimer je Rust postal drugi jezik, posvečen razvoju Linuxa, po 31 letih razvoja izključno na osnovi C.

»Želimo, da je gccrs pravi prevajalnik Rust in ne projekt igrače ali nekaj, kar prevaja jezik, ki izgleda kot Rust, vendar ni Rust; Resnično se trudimo, da bi ta zbirka testov delovala,« je dodal. Med predstavitvijo je Cohen tudi dejal, da čeprav se je vmesnik Rust GCC 13 dobro začel, ga čaka še veliko dela. Izposojena koda za preverjanje je trenutno očitno odsotna, podpora za vgrajene in intrinzične module še vedno poteka, pomemben mejnik prevajanja kode Rust za Linux pa še ni dosežen.

Spomnimo se, da si projekt Rust za Linux prizadeva v jedro Linuxa vpeljati nov sistemski programski jezik. Po mnenju strokovnjakov ima Rust ključno lastnost, zaradi katere je zelo zanimiv za razmislek kot drugi jezik za jedro Linuxa: zagotavlja, da ne pride do nedefiniranega vedenja (pod pogojem, da je nevarna koda razumna).

To vključuje odsotnost napak, kot so uporaba po brezplačni uporabi, dvojna osvobajanja, podatkovne dirke itd. S tem povezane razprave se vrtijo okoli možnosti opustitve jezika C v korist jezika Rust. Toda Linus Torvalds, ustvarjalec Linuxa, je dejal, da to ni navedeni cilj projekta Rust for Linux.

Nazadnje je treba omeniti, da čeprav je bil vmesnik gccrs združen za prihajajočo izdajo GCC 13, še ni v stanju, ko bi ga večina razvijalcev Rusta lahko dejansko uporabljala kot alternativo Rustovemu uradnemu prevajalniku LLVM.

Naj bi bilo šele naslednje leto, vsaj z GCC 14.

Vir: https://fosdem.org/


Dodaj kot prednostni vir v Googlu