In GCC hanno approvato l'implementazione di RUST (gccrs)

Recentemente la notizia lo ha reso noto il Comitato direttivo del GCC ha approvato l'inclusione dell'implementazione del gccrs (GCC Rust) dal compilatore Rust nel core GCC.

Con esso GCC (Raccolta di compilatori GNU) hanno già un backend per Rust, attraverso il progetto denominato rustc_codegen_gcc fondato da Antoni Boucher. È ancora descritto come un lavoro in corso, ma è stato unito al repository Rust principale a settembre 2021.

Per chi non conosce la lingua Ruggine, dovrebbero sapere cos'èe si concentra sulla gestione sicura della memoria e fornisce i mezzi per ottenere un elevato parallelismo di lavoro. La gestione sicura della memoria, che esclude errori come l'accesso a un'area di memoria dopo averla liberata, il dereferenziamento dei puntatori null e l'overflow dei limiti del buffer, si ottiene in Rust in fase di compilazione controllando i riferimenti, tenendo traccia della proprietà degli oggetti, tenendo conto della durata degli oggetti (ambito ), e valutare la correttezza dell'accesso alla memoria durante l'esecuzione del codice.

Ruggine fornisce anche la protezione dall'overflow di numeri interi, richiede l'inizializzazione delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, applica il concetto di riferimenti e variabili immutabili per impostazione predefinita.

Dopo aver integrato l'interfaccia, in GCC standard può essere utilizzato per compilare programmi Rust senza la necessità di installare il compilatore rustc costruito con build LLVM.

Da novembre 2020 lavoro a tempo pieno sul front-end Rust per GCC, grazie a Open Source Security, Inc ed Embecosm. Di conseguenza, scrivo a questa mailing list per chiedere un feedback dall'esperienza collettiva qui in anticipo per pianificare un percorso per caricare il front-end su GCC.

L'importanza di questo progetto è la sua importanza per Linux, generalmente costruito con GCC, dove i piani per consentire l'uso di Rust insieme a C per il codice del kernel, per motivi di sicurezza della memoria, vanno costantemente avanti.

Ciò significa che il compilatore Rust, rustc, può essere utilizzato con il backend GCC, Il back-end è il generatore di codice che supporta più architetture CPU di LLVM, il solito compilatore back-end di Rust, sebbene ci siano limitazioni, come la richiesta di una versione patchata di GCC.

L'alternativa è avere una toolchain GCC completa. Nel gennaio 2021, Open Source Security, Inc, produttore di una versione rafforzata del kernel Linux chiamata Grsecurity, ha affermato che avrebbe finanziato uno "sforzo pubblico di sviluppo" di un'interfaccia GCC per Rust, sulla base del fatto che avrebbe migliorato la sicurezza non avendo per mescolare diversi compilatori.

Dal mio punto di vista come leader in questo front-end, lo siamo attualmente in fase di forte sviluppo, quindi questo significa una buona quantità di codice rotante ancora, e non vedo questo cambiamento finché non possiamo compilare correttamente la libcore box entro la fine dell'anno. Anche se mi piacerebbe vederci fusa in GCC 13, voglio assicurarmi che questo progetto sia un successo per tutto, e questo potrebbe significare tornare alla finestra di rilascio successiva per assicurarsi che questo sia gestibile per produrre un front-end di qualità su cui sedersi insieme per gli altri.

La società ha citato un documento che mostra "come la sicurezza complessiva di un ambiente di runtime può essere ridotta introducendo codice scritto in Rust o in un altro linguaggio in cui il compilatore non fornisce la stessa sicurezza a livello binario".

Gli sviluppatori di gccrs sono incoraggiati a iniziare a lavorare con i team di revisione e GCC Change Release per finalizzare e approvare le patch in termini di conformità ai requisiti tecnici per il codice da aggiungere a GCC.

Partendo dal presupposto che lo sviluppo di gccrs continua come pianificato e non vengono identificati problemi imprevisti, il front-end in lingua Rust sarà integrato nella versione GCC 13 prevista per maggio del prossimo anno. L'implementazione di Rust in GCC 13 sarà in stato beta, non ancora abilitato per impostazione predefinita.

Infine se sei interessato a saperne di più sul progetto, puoi consultare i dettagli in il seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   qtrit suddetto

    Ottimo, spero che l'implementazione sia utile per molti programmatori.