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

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

S tim GCC (GNU Compiler Collection) već imaju pozadinu za Rust, kroz projekt rustc_codegen_gcc koji je osnovao Antoni Boucher. Još uvijek se opisuje kao rad u tijeku, ali je spojen u glavni Rust repozitorij u rujnu 2021.

Za one koji ne znaju jezik hrđa, trebali bi znati što jee usredotočuje se na sigurno upravljanje memorijom i pruža sredstva za postizanje visokog paralelizma poslova. Sigurno rukovanje memorijom, koje isključuje pogreške kao što je pristup memorijskom području nakon njegovog oslobađanja, dereferenciranje nultih pokazivača i prekoračenje granica međuspremnika, postiže se u Rustu tijekom kompajliranja kroz provjeru referenci, praćenje vlasništva objekta, vođenje računa o vijeku trajanja objekata (opsezi ), te ocjenjivanje ispravnosti pristupa memoriji tijekom izvođenja koda.

Hrđa također pruža zaštitu od prekoračenja cjelobrojnih brojeva, zahtijeva inicijalizaciju varijabli prije upotrebe, bolje obrađuje pogreške u standardnoj biblioteci, primjenjuje koncept referenci i nepromjenjivih varijabli prema zadanim postavkama.

Nakon integracije sučelja, u standardnom GCC-u ono se može koristiti za kompajliranje Rust programa bez potrebe za instaliranjem rustc prevoditelja izgrađenog s LLVM buildovima.

Od studenog 2020. radim puno radno vrijeme na Rust sučelju za GCC, zahvaljujući Open Source Security, Inc i Embecosmu. Kao rezultat toga, pišem ovoj listi za slanje e-pošte kako bih rano potražio povratne informacije iz kolektivnog iskustva ovdje kako bih isplanirao put do prijenosa sučelja na GCC.

Važnost ovog projekta je njegova važnost za Linux, općenito izgrađen s GCC-om, gdje se planovi da se omogući korištenje Rusta uz C za kernel kod, iz sigurnosnih razloga memorije, neprestano napreduju.

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

Alternativa je imati puni GCC alatni lanac. U siječnju 2021., Open Source Security, Inc, proizvođač ojačane verzije Linux kernela pod nazivom Grsecurity, rekao je da će financirati "javni razvoj" GCC sučelja za Rust, na temelju toga što poboljšava sigurnost tako što nema miješati različite prevoditelje.

Iz moje perspektive kao lidera u ovom front-endu, trenutno jesmo u intenzivnom razvoju, tako da to znači da se prilična količina koda mijenja još, i ne vidim da se ovo mijenja dok ne budemo mogli uspješno kompilirati libcore box kasnije ove godine. Iako bih se volio vidjeti spojen u GCC 13, želim biti siguran da će ovaj projekt biti uspješan sve, a to bi moglo značiti vraćanje na sljedeći prozor izdanja kako bi se osiguralo da je ovo izvodljivo za proizvodnju kvalitetnog prednjeg kraja za sjedenje frakcija u stranci drugima.

Tvrtka je citirala dokument koji pokazuje "kako se ukupna sigurnost runtime okruženja može smanjiti uvođenjem koda napisanog u Rustu ili drugom jeziku gdje kompajler ne pruža istu sigurnost na binarnoj razini."

gccrs programere potičemo da počnu raditi s timovima za pregled i GCC Change Release za dovršavanje i odobrenje zakrpa u smislu ispunjavanja tehničkih zahtjeva za kod koji će se dodati GCC-u.

Pod pretpostavkom da se razvoj gccrs-a nastavlja prema planu i da se ne uoče nikakvi nepredviđeni problemi, sučelje Rust jezika bit će integrirano u GCC 13 izdanje zakazano za svibanj sljedeće godine. Implementacija Rusta u GCC 13 bit će u beta statusu, još nije omogućena prema zadanim postavkama.

Konačno ako vas zanima više o tome o projektu, možete provjeriti detalje u sljedeći link.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   qtrit dijo

    Super, nadam se da će implementacija biti korisna mnogim programerima.