I GCC godkendte de implementeringen af ​​RUST (gccrs)

For nylig brød nyheden det GCC's styrekomité har godkendt medtagelsen af ​​gccrs-implementeringen (GCC Rust) fra Rust-kompileren i GCC-kernen.

Med det GCC (GNU Compiler Collection) har allerede en backend til Rust, gennem projektet kaldet rustc_codegen_gcc grundlagt af Antoni Boucher. Det beskrives stadig som et igangværende arbejde, men det blev slået sammen til det primære Rust-depot i september 2021.

For dem der ikke kan sproget Rust, de burde vide, hvad der ere fokuserer på sikker hukommelseshåndtering og giver midlerne til at opnå høj jobparallelisme. Sikker hukommelseshåndtering, som udelukker fejl som f.eks. adgang til et hukommelsesområde efter frigørelse, dereferencing af nul-pointere og buffergrænseoverløb, opnås i Rust på kompileringstidspunktet ved at tjekke for referencer, spore objektejerskab, tage højde for objekters levetid (omfang) ), og evaluere rigtigheden af ​​hukommelsesadgang under kodeudførelse.

Rust giver også heltalsoverløbsbeskyttelse, kræver at variable initialiseres før brug, håndterer bedre fejl i standardbiblioteket, håndhæver konceptet med referencer og uforanderlige variable som standard.

Efter integration af grænsefladen kan den i standard GCC bruges til at kompilere Rust-programmer uden behov for at installere rustc-kompileren bygget med LLVM-builds.

Siden november 2020 har jeg arbejdet fuld tid på Rust-front-end for GCC, takket være Open Source Security, Inc og Embecosm. Som et resultat heraf skriver jeg til denne mailingliste for at søge feedback fra den kollektive oplevelse her tidligt for at planlægge en vej til upload af front-end til GCC.

Vigtigheden af ​​dette projekt er dets betydning for Linux, generelt bygget med GCC, hvor planerne om at tillade Rust at blive brugt sammen med C til kernekode, af hukommelsessikkerhedsmæssige årsager, konstant bevæger sig fremad.

Det betyder, at Rust-kompileren, rustc, kan bruges med GCC-backend, Backend er kodegeneratoren, der understøtter flere CPU-arkitekturer end LLVM, Rusts sædvanlige backend-compiler, selvom der er begrænsninger, såsom at kræve en patchet version af GCC.

Alternativet er at have en fuld GCC-værktøjskæde. I januar 2021 sagde Open Source Security, Inc., producenter af en hærdet version af Linux-kernen kaldet Grsecurity, at det ville finansiere en "offentlig udviklingsindsats" af en GCC-grænseflade til Rust, med den begrundelse, at det forbedrede sikkerheden ved ikke at have at blande forskellige compilere.

Fra mit perspektiv som leder i denne front-end er vi pt under hård udvikling, så det betyder, at en del kode roterer endnu, og jeg kan ikke se dette ændre sig, før vi kan kompilere med succes libcore-boksen senere i år. Selvom jeg ville elske at se hinanden fusioneret til GCC 13, vil jeg sikre mig, at dette projekt bliver en succes for alle, og det kan betyde, at du ruller tilbage til næste udgivelsesvindue for at sikre, at dette er overskueligt for at producere en kvalitetsfront-end til at sidde sammen til andre.

Virksomheden citerede et papir, der viser "hvordan den overordnede sikkerhed i et runtime-miljø kan reduceres ved at introducere kode skrevet på Rust eller et andet sprog, hvor compileren ikke giver den samme binære-niveausikkerhed."

gccrs-udviklere opfordres til at begynde at arbejde med anmeldelsesteams og GCC Change Release for at færdiggøre og godkende patches i forhold til at opfylde de tekniske krav til kode, der skal tilføjes til GCC.

Forudsat at gccrs-udviklingen fortsætter som planlagt, og ingen uforudsete problemer identificeres, Rust-sprogets frontend vil blive integreret i GCC 13-udgivelsen, der er planlagt til maj næste år. Rust-implementeringen i GCC 13 vil være i beta-status, endnu ikke aktiveret som standard.

Endelig hvis du er interesseret i at vide mere om det om projektet, kan du se detaljerne i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   qtrit sagde han

    Fantastisk, jeg håber, at implementeringen vil være nyttig for mange programmører.