Git 2.55 active Rust par défaut, et la fin du tout-C est déjà programmée

Vingt et un ans après sa création par Linus Torvalds, Git amorce pour de bon son changement de langage. La première version de test de Git 2.55, publiée hier, active par défaut le code Rust dans le gestionnaire de versions le plus utilisé au monde, celui qui héberge l’historique d’à peu près tous les projets logiciels de la planète.
Jusqu’ici, il fallait réclamer explicitement le Rust au moment de compiler le logiciel, c’est-à-dire de le fabriquer à partir de son code source, via une option baptisée WITH_RUST ou via le système de build Meson. Git 2.55 inverse la logique : le Rust est désormais supposé présent, et c’est pour s’en passer qu’il faut lever la main, avec une nouvelle option NO_RUST.
Pour situer, Rust est un langage de programmation conçu pour éliminer toute une famille de bugs mémoire, ceux-là mêmes qui font le bonheur des pirates depuis quarante ans. Git, lui, est écrit en C depuis 2005, un langage qui laisse au développeur l’entière responsabilité de ne pas se tirer une balle dans le pied.
Le chantier ne date pas d’hier. L’an dernier, Patrick Steinhardt, un des mainteneurs du projet, proposait d’introduire Rust dans le cœur de Git et d’en faire à terme une dépendance obligatoire pour fabriquer l’outil.
Git 2.52 avait franchi le premier pas fin 2025 en convertissant un petit module, varint.c, chargé de décoder des entiers à taille variable. Du code volontairement modeste : l’idée était de roder la chaîne de compilation, pas de réécrire Git.
Avec la 2.55, le rythme change. L’équipe prépare d’ailleurs le portage de xdiff, le moteur qui calcule les différences entre deux versions d’un fichier, autrement dit le cœur du métier de Git.
Et le calendrier est déjà là : à partir de Git 3.0, Rust sera obligatoire, sans aucune possibilité de le désactiver. Aucune échappatoire. L’option NO_RUST de la 2.55 n’est donc qu’un sursis.
Pour vous, rien ne change : les binaires fournis par votre distribution Linux, par Apple ou par GitHub arrivent déjà compilés. Ce sont les empaqueteurs et les plateformes un peu spéciales qui vont devoir installer la chaîne d’outils Rust.
Sauf que voilà, tout le monde n’a pas un compilateur Rust sous la main. La proposition de Steinhardt avait déclenché de longs débats autour des plateformes exotiques, comme les serveurs NonStop de HPE ou certains vieux Unix, où Rust ne tourne tout simplement pas aujourd’hui. Le projet compte sur les progrès de gccrs, le support Rust en cours d’intégration dans GCC, le compilateur historique du monde libre, pour boucher ces trous avant l’échéance.
Le reste de la version est plus classique, avec des optimisations, des corrections de bugs et de petites améliorations sur différentes sous-commandes, détaillées dans l’annonce de Junio Hamano, le mainteneur en chef du projet.
Voir Git, monument du C, basculer sur Rust par défaut, c’est le signe le plus clair que le vieux langage perd du terrain.
Source :
Phoronix
Source : korben.info