gccrs će biti integriran u GCC 13

gccrs

gccrs je potpuna alternativna implementacija jezika Rust preko GCC-a

Nedavno je objavljeno da je projekt "gccrs" , koji ima za cilj pružiti sučelje za Rust jezik za GCC (GNU Compiler Collection), na putu da bude integriran u GCC 13. Na FOSDEM konferenciji programera 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.

Podrijetlo ovog projekta je napor zajednice prije nekoliko godina, kada je Rust još bio na verziji 0.9; jezik koji je stvorila Mozilla bio je podložan tolikim promjenama da je naporima zajednice postalo teško uhvatiti korak.

Sada kada je jezik stabilan, vrijeme je za stvaranje alternativnih prevodilaca:

“Započeli 2014. (i ponovno pokrenuti 2019.), napori traju od 2020. i uložili smo mnogo truda i puno smo napredovali. Prenijeli smo prvu verziju gccrs-a unutar GCC-a. Dakle, sljedeći put kada instalirate GCC 13, on će imati gccrs unutra.

Možete ga koristiti i možete ga početi hakirati, možete prijaviti probleme kada se neizbježno sruši i užasno umre. Jedna velika stvar koju radimo je raditi na tome da rustc testni paket funkcionira,” rekao je Arthur Cohen tijekom svoje prezentacije na FOSDEM konferenciji ranije ovog mjeseca.

Mogućnost uspješnog pokretanja testnog paketa kompajlera rustc također ostaje cilj. Prema Cohenu, Rustovo GCC sučelje 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 gccrsa može popuniti praznine za korištenje u integriranom razvoju ".

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

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

Projekt "Rust for Linux" službeno se spojio s glavnim Linux 6.1 Git stablom prošlog listopada, čime je Rust postao drugi jezik posvećen razvoju Linuxa, nakon 31 godine razvoja isključivo na C-u.

“Želimo da gccrs bude pravi Rust prevodilac, a ne projekt igračka ili nešto što kompajlira jezik koji izgleda kao Rust, ali nije Rust; stvarno se trudimo da ovaj testni paket funkcionira,” dodao je. Tijekom prezentacije, Cohen je također rekao da, iako je GCC 13 Rust sučelje na dobrom početku, ima još puno posla za napraviti. Posuđeni verifikacijski kod trenutačno je očito odsutan, podrška za ugrađene i intrinzične module još uvijek je u tijeku, a važna prekretnica kompajliranja Rust koda za Linux tek treba biti postignuta.

Podsjećamo, projekt Rust za Linux ima za cilj uvesti novi jezik za programiranje sustava u Linux kernel. Prema riječima stručnjaka, Rust ima ključno svojstvo koje ga čini vrlo zanimljivim za razmatranje kao drugi jezik za Linux kernel: osigurava da se ne pojavi nedefinirano ponašanje (pod uvjetom da je nesiguran kod ispravan).

To uključuje odsutnost pogrešaka kao što su korištenje nakon oslobađanja, dvostruka oslobađanja, utrke podataka itd. Povezane rasprave vrte se oko mogućnosti odbacivanja C-a u korist jezika Rust. Ali Linus Torvalds, tvorac Linuxa, rekao je da to nije navedeni cilj projekta Rust for Linux.

Konačno, vrijedi spomenuti da iako je sučelje gccrs spojeno za nadolazeće izdanje GCC 13, još nije u stanju u kojem ga većina Rustovih programera može koristiti kao alternativu Rustovom službenom LLVM kompajleru.

Ne bi trebalo biti do sljedeće godine, barem s GCC 14.

Izvor: https://fosdem.org/


Dodaj kao preferirani izvor na Googleu