Il a été récemment révélé que le projet gccrsdont le but est de fournir une interface pour le langage Rust à GCC (GNU Compiler Collection), est en passe d’être intégré dans GCC 13. Lors de la conférence des développeurs FOSDEM plus tôt ce mois-ci, l’ingénieur Arthur Cohen a fait une présentation sur gccrs décrivant l’état actuel des travaux.
Pour ceux qui ne connaissent pas le projet gccrs, ils doivent savoir qu’il s’agit une implémentation alternative complète du langage Rust au-dessus de GCC dans le but de devenir pleinement la chaîne d’outils GNU.
L’origine de ce projet est un effort communautaire il y a plusieurs années, lorsque Rust en était encore à la version 0.9 ; le langage créé par Mozilla était sujet à tant de changements qu’il devenait difficile pour un effort communautaire de rattraper son retard.
Maintenant que le langage est stable, il est temps de créer des compilateurs alternatifs :
« Commencé en 2014 (et relancé en 2019), l’effort se poursuit depuis 2020 et nous avons fait beaucoup d’efforts et beaucoup de progrès. Nous avons téléchargé la première version de gccrs dans GCC. Ainsi, la prochaine fois que vous installerez GCC 13, il y aura gccrs à l’intérieur. Vous pouvez l’utiliser et vous pouvez commencer à le pirater, vous pouvez signaler les problèmes lorsqu’il se bloque inévitablement et meurt horriblement. Une des grandes choses que nous faisons est de faire fonctionner la suite de tests rustc », a déclaré Arthur Cohen lors de sa présentation à la conférence FOSDEM au début du mois.
La capacité à exécuter avec succès la suite de tests du compilateur rustc reste également un objectif. Selon Cohen, L’interface GCC de Rust pointe également vers l’ancienne libcore 1.49 de Rust.
La FAQ du projet gccrs note que toutes les technologies de construction LLVM, qui sont utilisées par Rust, “manquent de backends compatibles GCC, donc une implémentation gccrs peut combler les lacunes pour une utilisation dans le développement embarqué«.
Notez, cependant, que le compilateur Rust-GCC (gccrs) est encore à un stade très précoce et ne peut pas encore être utilisé pour compiler des programmes Rust réels.
L’équipe GCC a voté en juillet dernier pour approuver l’intégration gccrs en tant que suite de construction. L’importance de ce projet réside dans son importance pour le noyau Linux. En fait, le noyau Linux est généralement construit avec GCC, mais les plans pour permettre au langage Rust d’être utilisé avec C pour le code du noyau, pour des raisons de sécurité de la mémoire, progressent régulièrement.
Le projet “Rust for Linux” a officiellement fusionné avec l’arborescence principale Linux 6.1 Git en octobre dernier, faisant de Rust le deuxième langage dédié au développement Linux, après 31 ans de développement exclusivement basé sur C.
«Nous voulons que gccrs soit un véritable compilateur Rust et non un projet jouet ou quelque chose qui compile un langage qui ressemble à Rust mais qui n’est pas Rust; nous essayons vraiment de faire fonctionner cette suite de tests », a-t-il ajouté. Lors de la présentation, Cohen a également déclaré que bien que l’interface Rust de GCC 13 ait pris un bon départ, il reste encore beaucoup de travail à faire. Le code de vérification emprunté est manifestement absent pour le moment, la prise en charge des modules intégrés et intrinsèques est toujours en cours et l’étape importante de la compilation du code Rust pour Linux n’a pas encore été atteinte.
Pour rappel, le projet “Rust for Linux” vise à introduire un nouveau langage de programmation système dans le noyau Linux. Selon les experts, le langage Rust possède une propriété clé qui le rend très intéressant à considérer comme le second langage du noyau Linux : il garantit qu’aucun comportement indéfini ne se produit (tant que le code non sécurisé est sain).
Cela inclut l’absence d’erreurs telles que l’utilisation après la libération, les doubles libérations, les courses de données, etc. Les débats connexes tournent autour de la possibilité d’abandonner le C au profit du langage Rust. Mais Linus Torvalds, le créateur de Linux, a déclaré que ce n’était pas l’objectif déclaré du projet Rust for Linux.
Finalement, Il convient de mentionner que bien que l’interface gccrs ait été fusionnée pour la prochaine version de GCC 13, il n’est pas encore dans un état où la plupart des développeurs Rust peuvent réellement l’utiliser comme alternative au compilateur officiel LLVM de Rust.
Ce ne devrait pas être avant l’année prochaine, du moins avec GCC 14 au moins.
Source : https://fosdem.org/