Il Comitato di gestione dello sviluppo della suite di compilatori GCC (GCC Steering Committee) ha approvato l'integrazione nel core di GCC della realizzazione del compilatore del linguaggio Rust, preparata dal progetto gccrs (GCC Rust). Dopo l'integrazione del frontend, gli strumenti standard di GCC potranno essere utilizzati per compilare programmi in Rust senza la necessità di installare il compilatore rustc, costruito utilizzando le risorse di LLVM.
È stato raccomandato agli sviluppatori di gccrs di iniziare a collaborare con i team responsabili della revisione delle modifiche e della preparazione delle versioni di GCC, per effettuare l'ultima verifica e approvazione delle patch in base al rispetto delle specifiche tecniche del codice da aggiungere a GCC. Qualora lo sviluppo di gccrs prosegua secondo il programma previsto e non si verifichino problemi imprevisti, il frontend per il linguaggio Rust sarà integrato nella versione 13 di GCC, prevista per maggio del prossimo anno. L'implementazione di Rust in GCC 13 avrà lo status di beta, non attivata di default.
Il linguaggio Rust si concentra sulla gestione sicura della memoria e fornisce strumenti per raggiungere un alto parallalelismo nell'esecuzione delle attività. La gestione sicura della memoria, evitando errori come l'accesso a zone di memoria dopo la loro liberazione, la dereferenziazione di puntatori nulli e l'overflow del buffer, è realizzata in Rust durante la compilazione attraverso il controllo dei riferimenti, il tracciamento della proprietà degli oggetti, la gestione del tempo di vita degli oggetti (ambito di visibilità) e la valutazione della correttezza dell'accesso alla memoria durante l'esecuzione del codice. Rust fornisce anche strumenti per proteggere contro il sovraccarico intero, richiede l'inizializzazione obbligatoria delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, applica il concetto di immutabilità (immutable) per riferimenti e variabili per impostazione predefinita, e offre una forte tipizzazione statica per minimizzare gli errori logici.
Fonte: opennet.ru
