gccrs bo vključen v GCC 13

gccrs

gccrs je popolna alternativna izvedba jezika Rust nad GCC

Nedavno je bilo razkrito, da projekt gccrs, katerega cilj je zagotoviti vmesnik za jezik Rust za GCC (GNU Compiler Collection), je na poti, da bo vključen v GCC 13.  Na konferenci za razvijalce FOSDEM v začetku tega meseca je inženir Arthur Cohen predstavil gccrs in opisal trenutno stanje dela.

Za tiste, ki ne poznajo projekta gccrs, naj vedo, da je to popolna alternativna izvedba jezika Rust na vrhu GCC s ciljem postati v celoti veriga orodij 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.

Zmožnost uspešnega izvajanja testne zbirke prevajalnika rustc prav tako ostaja cilj. Po mnenju Cohena, Rustov vmesnik GCC kaže tudi na starejši Rust libcore 1.49.

Pogosta vprašanja o projektu gccrs ugotavljajo, da vsem tehnologijam gradnje LLVM, ki jih uporablja Rust, "manjka nekaj zaledij, združljivih z GCC, zato implementacija gccrs lahko zapolni vrzeli za uporabo v vgrajenem 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.

Skupina GCC je julija lani glasovala za odobritev integracije gccrs kot gradbeni paket. Pomen tega projekta je v njegovem pomenu za jedro Linuxa. Pravzaprav je jedro Linuxa običajno zgrajeno z GCC, vendar načrti, da se omogoči uporaba jezika Rust poleg C za kodo jedra zaradi varnosti pomnilnika, 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, projekt "Rust for Linux" želi uvesti nov sistemski programski jezik v jedro Linuxa. Po mnenju strokovnjakov ima jezik Rust ključno lastnost, zaradi katere je zelo zanimiv za drugi jezik jedra Linuxa: zagotavlja, da ne pride do nedefiniranega vedenja (dokler je nevarna koda zdrava).

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.

Končno, Omeniti velja, da čeprav je bil vmesnik gccrs združen za naslednjo različico GCC 13, še ni v stanju, ko bi ga lahko večina razvijalcev Rust dejansko uporabljala kot alternativa Rustovemu uradnemu prevajalniku LLVM.

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

vir: https://fosdem.org/


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.