U GCC-u su odobrili implementaciju RUST-a (gccrs)

Nedavno je vijest razbila to Upravni odbor GCC-a je odobrio uključivanje implementacije gccrs-a (GCC Rust) iz Rust kompajlera u GCC jezgri.

S tim GCC (Zbirka GNU kompajlera) već imaju backend za Rust, kroz projekat pod nazivom rustc_codegen_gcc koji je osnovao Antoni Boucher. Još uvijek se opisuje kao rad u toku, ali je spojen u glavno Rust spremište u septembru 2021.

Za one koji ne znaju jezik Hrđa, trebali bi znati šta jee se fokusira na sigurno upravljanje memorijom i pruža sredstva za postizanje visokog paralelizma poslova. Sigurno rukovanje memorijom, koje isključuje greške poput pristupa memorijskom području nakon njegovog oslobađanja, dereferenciranja nultih pokazivača i prekoračenja granica međuspremnika, postiže se u Rustu u vrijeme kompajliranja kroz provjeru referenci, praćenje vlasništva nad objektom, računanje životnog vijeka objekata (opsezi ), i procjenu ispravnosti pristupa memoriji tokom izvršavanja koda.

rđa također pruža zaštitu od prekoračenja cijelog broja, zahtijeva da se varijable inicijaliziraju prije upotrebe, bolje obrađuje greške u standardnoj biblioteci, primjenjuje koncept referenci i nepromjenjivih varijabli po defaultu.

Nakon integracije interfejsa, u standardnom GCC-u može se koristiti za kompajliranje Rust programa bez potrebe za instalacijom rustc kompajlera izgrađenog sa LLVM verzijama.

Od novembra 2020. radim puno radno vrijeme na Rust front-endu za GCC, zahvaljujući Open Source Security, Inc i Embecosmu. Kao rezultat toga, pišem ovoj mailing listi kako bih ranije tražio povratne informacije od kolektivnog iskustva ovdje kako bih planirao put do otpremanja front-enda u GCC.

Važnost ovog projekta je njegova važnost za Linux, generalno izgrađen sa GCC-om, gdje se planovi da se Rust koristi uz C za kernel kod, iz sigurnosnih razloga memorije, stalno napreduju.

To znači da Rust kompajler, rustc, može se koristiti sa GCC pozadinom, Pozadina je generator koda koji podržava više CPU arhitektura od LLVM-a, Rustovog uobičajenog pozadinskog kompajlera, iako postoje ograničenja, kao što je zahtijevanje zakrpljene verzije GCC-a.

Alternativa je imati potpuni GCC alatni lanac. U januaru 2021., Open Source Security, Inc, proizvođači ojačane verzije Linux kernela pod nazivom Grsecurity, rekli su da će finansirati "javni razvojni napor" GCC interfejsa za Rust, na osnovu toga što je poboljšao sigurnost. za miješanje različitih kompajlera.

Iz moje perspektive kao lidera u ovom front-endu, trenutno jesmo u intenzivnom razvoju, tako da to znači priličnu količinu rotiranja koda ipak, i ne vidim da se ovo mijenja dok ne budemo uspjeli kompajlirati libcore box kasnije ove godine. Mada bih voleo da se vidimo spojen u GCC 13, želim biti siguran da će ovaj projekat biti uspješan sve, a to bi moglo značiti vraćanje na sljedeći prozor izdanja kako biste bili sigurni da je ovo izvodljivo za proizvodnju kvalitetnog front-enda za sjedenje zajedno drugima.

Kompanija je citirala rad koji pokazuje "kako se ukupna sigurnost runtime okruženja može smanjiti uvođenjem koda napisanog na Rust-u ili drugom jeziku gdje kompajler ne pruža istu sigurnost na binarnom nivou."

gccrs programeri se ohrabruju da počnu raditi s timovima za pregled i GCC Change Release kako bi se finalizirale i odobrile zakrpe u smislu ispunjavanja tehničkih zahtjeva za kod koji se dodaje u GCC.

Pod pretpostavkom da se razvoj gccrs-a nastavi kako je planirano i da nisu identifikovani nikakvi nepredviđeni problemi, front-end Rust jezika će biti integrisan u GCC 13 izdanje zakazano za maj sledeće godine. Implementacija Rusta u GCC 13 će biti u beta statusu, još uvijek nije omogućena po defaultu.

Konačno ako ste zainteresirani da saznate više o tome o projektu, detalje možete pogledati u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   qtrit rekao je

    Odlično, nadam se da će implementacija biti korisna za mnoge programere.