In GCC keurden ze de implementatie van RUST (gccrs) goed

Dat maakte onlangs het nieuws bekend de GCC-stuurgroep heeft de opname van de gccrs-implementatie goedgekeurd (GCC Rust) van de Rust-compiler in de GCC-kern.

Ermee GCC (GNU-compilerverzameling) heb al een backend voor Rust, via het project rustc_codegen_gcc opgericht door Antoni Boucher. Het wordt nog steeds beschreven als een werk in uitvoering, maar het werd in september 2021 samengevoegd met de hoofdrepository van Rust.

Voor degenen die de taal niet kennen Roest, ze zouden moeten weten wat het ise richt zich op veilig geheugenbeheer en biedt de middelen om een ​​hoog baanparalllisme te bereiken. Veilige geheugenafhandeling, die fouten uitsluit, zoals toegang tot een geheugengebied nadat het is vrijgemaakt, dereferentie van null-pointers en overloop van buffergrenzen, wordt bereikt in Rust tijdens het compileren door te controleren op referenties, objecteigendom te volgen, rekening te houden met de levensduur van objecten (scopes ), en het evalueren van de juistheid van geheugentoegang tijdens het uitvoeren van code.

Roest biedt ook integer overloopbeveiliging, vereist dat variabelen vóór gebruik worden geïnitialiseerd, gaat beter om met fouten in de standaardbibliotheek, dwingt standaard het concept van verwijzingen en onveranderlijke variabelen af.

Nadat de interface is geïntegreerd, kan het in standaard GCC worden gebruikt om Rust-programma's te compileren zonder dat de rustc-compiler hoeft te worden geïnstalleerd die is gebouwd met LLVM-builds.

Sinds november 2020 werk ik fulltime aan de Rust front-end voor GCC, dankzij Open Source Security, Inc en Embecosm. Daarom schrijf ik naar deze mailinglijst om in een vroeg stadium feedback te krijgen van de collectieve ervaring hier om een ​​pad te plannen voor het uploaden van de front-end naar GCC.

Het belang van dit project is het belang ervan voor Linux, over het algemeen gebouwd met GCC, waar plannen om Rust naast C voor kernelcode te gebruiken, om redenen van geheugenveiligheid, voortdurend vooruitgaan.

Dit betekent dat de Rust-compiler, rustc, kan worden gebruikt met de GCC-backend, De backend is de codegenerator die meer CPU-architecturen ondersteunt dan LLVM, Rust's gebruikelijke backend-compiler, hoewel er beperkingen zijn, zoals het vereisen van een gepatchte versie van GCC.

Het alternatief is om een ​​volledige GCC-toolchain te hebben. In januari 2021 zei Open Source Security, Inc, makers van een geharde versie van de Linux-kernel genaamd Grsecurity, dat het een "publieke ontwikkelingsinspanning" van een GCC-interface voor Rust zou financieren, omdat het de beveiliging verbeterde. om verschillende compilers te mixen.

Vanuit mijn perspectief als leider in deze front-end, zijn we momenteel onder zware ontwikkeling, dus dit betekent een behoorlijke hoeveelheid code die roteert nog, en ik zie dit niet veranderen totdat we succesvol kunnen compileren de libcore-box later dit jaar. Hoewel ik elkaar graag zou zien samengevoegd tot GCC 13, ik wil er zeker van zijn dat dit project een succes wordt voor allemaal, en dit kan betekenen dat je terug moet naar het volgende releasevenster om ervoor te zorgen dat dit beheersbaar is om een ​​hoogwaardige front-end te produceren om te zitten troep aan anderen.

Het bedrijf citeerde een artikel dat laat zien "hoe de algehele beveiliging van een runtime-omgeving kan worden verminderd door code te introduceren die is geschreven in Rust of een andere taal waarin de compiler niet dezelfde beveiliging op binair niveau biedt."

gccrs-ontwikkelaars worden aangemoedigd om met beoordelingsteams te gaan werken en GCC Change Release om patches af te ronden en goed te keuren om te voldoen aan de technische vereisten voor code die aan GCC moet worden toegevoegd.

Ervan uitgaande dat de ontwikkeling van gccrs doorgaat zoals gepland en er geen onvoorziene problemen worden geïdentificeerd, de front-end van de Rust-taal wordt geïntegreerd in de GCC 13-release die gepland staat voor mei volgend jaar. De Rust-implementatie in GCC 13 heeft de bètastatus en is nog niet standaard ingeschakeld.

Eindelijk als u er meer over wilt weten over het project kunt u de details raadplegen in de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   qtrit zei

    Geweldig, ik hoop dat de implementatie voor veel programmeurs nuttig zal zijn.