Rust 1.51 améliore Cargo

Par:
fredericmazue

mer, 31/03/2021 - 12:41

Le projet Rust vient de sortir la version 1.51. Cette mouture se fait principalement remarquer au niveau de Cargo et des temps de compilation sur macOS.

Mais d'abort remarquons un support des génériques const étendu depuis son introduction avec Rust 1.47. Désormais, Rust 1.51 permet de créer des types génériques const sur des types intégraux tels que des entiers, des caractères et des booléens. L'implémentations des génériques const n'est pas encore terminée avec Rust 1.51. En effet, l'équipe Rust travaille sur l'ajout de la prise en charge des chaînes et des types personnalisés, ainsi que sur la possibilité de spécifier des génériques const en utilisant des expressions complexes au lieu d'arguments const.

Cargo vient avec un nouveau résolveur qui vise à résoudre un problème qui se présente quand par exemple vous utilisez une caisse à la fois en tant que dépendance de développeur à utiliser au moment de la compilation et en tant que dépendance pour votre binaire final. Lorsqu'une caisse apparaît plus d'une fois dans le graphique de dépendance, Cargo fusionne toutes les fonctionnalités utilisées pour cette caisse afin de la construire une seule fois. Mais il peut y avoir une situation où vous ne voulez pas qu'une fonctionnalité que vous utilisez au moment de la compilation soit également incluse dans votre binaire final. Pour résoudre ce problème, Cargo propose désormais une nouvelle option resolver qui peut détecter les cas où une caisse doit être compilée deux fois.

Rust 1.51 apporte des améliorations significatives sur les temps de compilation sur macOS grâce à une collecte d'informations de débogage qui fonctionne maintenant de manière incrémentielle. Le compilateur n'a donc plus besoin de parcourir tout le binaire final, ce qui peut être assez coûteux en temps de performances avec les gros projets.