gccrs će biti integrisan u GCC 13

gccrs

gccrs je kompletna alternativna implementacija Rust jezika preko GCC-a

Nedavno je objavljeno da je projekat "gccrs" , koji ima za cilj da obezbijedi interfejs za Rust jezik za GCC (GNU Compiler Collection), na putu da bude integrisan u GCC 13. Na FOSDEM konferenciji za programere ranije ovog mjeseca, inženjer Arthur Cohen održao je prezentaciju o gccrs-u u kojoj je iznio trenutno stanje rada.

Za one koji nisu upoznati s projektom gccrs, to je potpuna alternativna implementacija Rust jezika na GCC-u, s ciljem potpune integracije u GNU alatni lanac.

Poreklo ovog projekta je napor zajednice prije nekoliko godina, kada je Rust još uvijek bio u verziji 0.9; jezik koji je kreirala Mozilla bio je podložan tolikim promenama da je postalo teško za pokušaj zajednice da sustigne korak.

Sada kada je jezik stabilan, vrijeme je za kreiranje alternativnih kompajlera:

“Započeli su 2014. (i ponovo pokrenuti 2019.), napori su u toku od 2020. godine i uložili smo mnogo truda i mnogo napretka. Učitali smo prvu verziju gccrs-a unutar GCC-a. Dakle, sljedeći put kada instalirate GCC 13, unutra će imati gccrs.

Možete ga koristiti i možete ga početi hakovati, možete prijaviti probleme kada se neizbježno sruši i užasno umre. Jedna velika stvar koju radimo je da radimo na tome da rustc test paket funkcioniše,” rekao je Arthur Cohen tokom svog izlaganja na FOSDEM konferenciji ranije ovog mjeseca.

Mogućnost uspješnog pokretanja testnog paketa kompajlera rustc također ostaje cilj. Prema Cohenu, Rustov GCC interfejs također cilja stariju verziju Rust libcore-a 1.49.

U često postavljanim pitanjima projekta gccrs navodi se da svim LLVM tehnologijama izgradnje, koje Rust koristi, "nedostaju neki GCC-kompatibilni backendovi, tako da implementacija gccrs može popuniti praznine za upotrebu u integriranom razvoju ".

Imajte na umu, međutim, da je Rust-GCC kompajler (gccrs) još uvijek u vrlo ranoj fazi i da se još ne može koristiti za kompajliranje stvarnih Rust programa.

GCC tim je prošlog jula glasao za odobrenje integracije gccrs-a kao paketa za izgradnju. Važnost ovog projekta leži u njegovom značaju za Linux kernel. U stvari, Linux kernel se obično gradi pomoću GCC-a, ali planovi da se dozvoli korištenje Rust jezika uz C za kernel kod, iz razloga sigurnosti memorije, stalno napreduju.

Projekat "Rust for Linux" službeno se spojio u glavno stablo Linuxa 6.1 Git prošlog oktobra, čime je Rust postao drugi jezik posvećen razvoju Linuxa, nakon 31 godine isključivo C-baziranog razvoja.

“Želimo da gccrs bude pravi Rust kompajler, a ne projekat igračke ili nešto što kompajlira jezik koji izgleda kao Rust, ali nije Rust; mi se zaista trudimo da ovaj testni paket funkcionira”, dodao je. Tokom prezentacije, Cohen je takođe rekao da iako je GCC 13 Rust interfejs dobro počeo, ima još puno posla koji treba da se uradi. Posuđeni verifikacioni kod trenutno upadljivo nedostaje, podrška za ugrađene i intrinzične module je još uvek u toku, a važna prekretnica kompajliranja Rust koda za Linux tek treba da se postigne.

Podsjećamo, cilj projekta Rust za Linux je uvođenje novog sistemskog programskog jezika u Linux kernel. Prema riječima stručnjaka, Rust ima ključno svojstvo koje ga čini vrlo zanimljivim za razmatranje kao drugog jezika za Linux kernel: osigurava da se ne pojavi nedefinirano ponašanje (pod uslovom da je nesiguran kod ispravan).

Ovo uključuje odsustvo grešaka kao što su korištenje nakon slobodnog korištenja, dvostruko oslobađanje, utrke podataka itd. Srodne debate se vrte oko mogućnosti odbacivanja C u korist Rust jezika. Ali Linus Torvalds, tvorac Linuxa, rekao je da to nije navedeni cilj projekta Rust for Linux.

Konačno, vrijedi spomenuti da iako je gccrs interfejs spojen za nadolazeće izdanje GCC 13, još uvijek nije u stanju u kojem većina Rust programera može zapravo da ga koristi kao alternativu Rustovom službenom LLVM kompajleru.

To bi trebalo biti tek sljedeće godine, barem sa GCC 14.

Izvor: https://fosdem.org/


Dodaj kao preferirani izvor na Googleu