La version stable de Rust 1.24 est disponible
avec l’ajout de la compilation incrémentielle par défaut pour améliorer le temps de compilation des projets

L’équipe de Rust vient d’annoncer la sortie d’une nouvelle version stable du langage de programmation Rust portant le numéro de référence 1.24.0. Dans cette version qui contient plusieurs améliorations, l’on note d’emblée l’ajout de la fonctionnalité rustfmt. Rustfmt est un composant qui permet de reformater le code Rust dans un « style standard ». Bien qu’elle soit encore au stade de préversion, cette fonctionnalité peut être utilisée dans cette nouvelle version stable de Rust.

Pour installer le composant, l’équipe de Rust suggère l’exécution du code suivant :

Code Rust : Sélectionner tout - Visualiser dans une fenêtre à part
$ rustup component add rustfmt-preview

Comme on peut le remarquer dans cette ligne de code, il est conseillé d’utiliser rustup component add au lieu de cargo install. Pour ceux qui avait déjà installé ce composant avec le code cargo install, l’équipe de Rust préconise de le désinstaller d’abord avant d’installer la nouvelle préversion qui vient d’être rendue disponible. Bien évidemment, vu que cette fonctionnalité est encore à l’étape de préversion, elle peut être sujette à des bogues ou des modifications. Mais dès qu’elle atteindra la version 1.0, rassure l’équipe de Rust, cette préversion sera dépréciée au profit de sa version stable.

Comme autre ajout dans cette version 1.24.0 de Rust, nous avons la compilation incrémentielle qui a été ajoutée par défaut. L’avantage avec la compilation incrémentielle est qu’elle permet de gagner du temps lorsque vous devez recompiler un projet après avoir effectué de petits changements. Par exemple, lorsque l’on travaille sur un projet il arrive assez souvent d’effectuer des modifications du code et de compiler à nouveau le projet. Dans le passé, lorsque vous étiez face à tel scénario, le compilateur ne faisait que recompiler l’ensemble du projet, ce qui pouvait être assez agaçant si la modification était minime et le projet assez volumineux. Mais avec la compilation incrémentielle, le code compilé dans le projet est celui qui a été modifié. Les autres parties du code ne sont pas affectées par la nouvelle compilation, ce qui permet de gagner du temps.

Et pour ceux qui sont particulièrement intéressés par l’amélioration des performances du compilateur Rust, l’équipe de Rust annonce que le nombre de codegen-units pour la compilation des projets est maintenant fixé par défaut à 16. Cela permet de compiler assez rapidement les versions des projets, mais le binaire obtenu est un peu lent. Pour atteindre une performance maximale, l’équipe de Rust conseille de définir codegen-units à 1 dans le fichier Cargo.toml afin d’éliminer toutes les dernières baisses de performance. Et au-delà ces améliorations, les développeurs de Rust annoncent que nombreux autres travaux sont prévus dans le but d’améliorer les performances de Rust.

Nom : mozillarust.jpg
Affichages : 2182
Taille : 14,9 Ko

Pour ce qui concerne les bibliothèques Rust, l’équipe de Rust annonce que la primitive str::find qui est utilisée pour trouver un caractère donné char à l’intérieur d’une chaine de caractères littérale &str a connu des améliorations de performances d’un facteur 10. De même, certaines nouvelles API ont été stabilisées dans cette nouvelle version. Ce sont notamment RefCell::replace, RefCell::swap et std::sync::atomic::spin_loop_hint.

Enfin, certaines fonctions peuvent être maintenant utilisées à l’intérieur des constantes. Ce sont entre autres :

  • les nouvelles fonctions Cell, RefCell et UnsafeCell ;
  • les nouvelles fonctions des différents types d’entiers Atomic ;
  • {integer} :: min_value et max_value ;
  • size_of et align_of pour mem;
  • ptr::null et null_mut

Source : Blog Rust

Et vous ?

Comment jugez-vous cette nouvelle version de Rust ? répond-elle à vos attentes ?

Quelles améliorations auriez-vous souhaité voir dans cette nouvelle version ou les versions à venir ?

Voir aussi

Mozilla annonce la disponibilité de Rust 1.16 qui s'accompagne de la sous-commande cargo check
Rust 1.17 est désormais disponible en version stable, et intègre de nombreuses améliorations
Rust 1.18 est disponible en version stable et apporte une optimisation sur l'alignement mémoire