I GCC godkjente de implementeringen av RUST (gccrs)

Nylig brøt nyheten det GCC-styringskomiteen har godkjent inkluderingen av gccrs-implementeringen (GCC Rust) fra Rust-kompilatoren i GCC-kjernen.

Med det GCC (GNU Compiler Collection) har allerede en backend for Rust, gjennom prosjektet kalt rustc_codegen_gcc grunnlagt av Antoni Boucher. Det beskrives fortsatt som et pågående arbeid, men det ble slått sammen til hoveddepotet for rust i september 2021.

For de som ikke kan språket Rust, de burde vite hva som ere fokuserer på sikker minnehåndtering og gir midler til å oppnå høy jobbparallellisme. Sikker minnehåndtering, som utelukker feil som å få tilgang til et minneområde etter frigjøring, dereferering av null-pekere og buffergrenseoverløp, oppnås i Rust på kompileringstidspunktet ved å sjekke etter referanser, spore objekteierskap, ta hensyn til levetiden til objekter (omfang). ), og evaluere riktigheten av minnetilgang under kodeutførelse.

Rust gir også heltalls overløpsbeskyttelse, krever at variabler initialiseres før bruk, håndterer feil i standardbiblioteket bedre, håndhever konseptet med referanser og uforanderlige variabler som standard.

Etter å ha integrert grensesnittet, kan det i standard GCC brukes til å kompilere Rust-programmer uten å måtte installere rustc-kompilatoren bygget med LLVM-bygg.

Siden november 2020 har jeg jobbet heltid på Rust-front-end for GCC, takket være Open Source Security, Inc og Embecosm. Som et resultat skriver jeg til denne e-postlisten for å søke tilbakemelding fra den kollektive opplevelsen her tidlig for å planlegge en vei til opplasting av grensesnittet til GCC.

Betydningen av dette prosjektet er dets betydning for Linux, vanligvis bygget med GCC, hvor planene om å tillate Rust å bli brukt sammen med C for kjernekode, av minnesikkerhetsgrunner, stadig beveger seg fremover.

Dette betyr at Rust-kompilatoren, rustc, kan brukes med GCC-backend, Backend er kodegeneratoren som støtter flere CPU-arkitekturer enn LLVM, Rusts vanlige backend-kompiler, selv om det er begrensninger, for eksempel å kreve en lappet versjon av GCC.

Alternativet er å ha en full GCC-verktøykjede. I januar 2021 sa Open Source Security, Inc., produsenter av en herdet versjon av Linux-kjernen kalt Grsecurity, at de ville finansiere en "offentlig utviklingsinnsats" av et GCC-grensesnitt for Rust, med den begrunnelse at det forbedret sikkerheten. å blande forskjellige kompilatorer.

Fra mitt perspektiv som leder i denne front-end, er vi for tiden under tung utvikling, så dette betyr en god del kode som roterer ennå, og jeg ser ikke at dette endres før vi kan kompilere libcore-boksen senere i år. Selv om jeg gjerne vil se hverandre slått sammen til GCC 13, vil jeg sørge for at dette prosjektet blir en suksess for alt, og dette kan bety å rulle tilbake til neste utgivelsesvindu for å sikre at dette er håndterbart for å produsere en kvalitetsfront-end å sitte junto til andre.

Selskapet siterte et papir som viser "hvordan den generelle sikkerheten til et kjøretidsmiljø kan reduseres ved å introdusere kode skrevet på Rust eller et annet språk der kompilatoren ikke gir den samme binære sikkerheten."

gccrs-utviklere oppfordres til å begynne å jobbe med gjennomgangsteam og GCC Change Release for å fullføre og godkjenne patcher når det gjelder å oppfylle de tekniske kravene for kode som skal legges til GCC.

Forutsatt at utviklingen av gccrs fortsetter som planlagt og ingen uforutsette problemer blir identifisert, Rust-språkfronten vil bli integrert i GCC 13-utgivelsen som er planlagt til mai neste år. Rust-implementeringen i GCC 13 vil være i betastatus, ennå ikke aktivert som standard.

Endelig hvis du er interessert i å vite mer om det om prosjektet, kan du se detaljene i følgende lenke.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   qtrit sa

    Flott, jeg håper implementeringen vil være nyttig for mange programmerere.