Tout juste publiée, la dernière version du langage de programmation Rust 1.84 introduit des API de provenance strictes qui peuvent être utilisées à la place des casts de pointeurs d'entiers, évitant ainsi les ambiguïtés inhérentes à ces casts. « Cet ajout rend le code à la fois plus facile à raisonner pour les développeurs et plus facile à analyser pour le compilateur », a déclaré l'équipe de Rust. En particulier, le modèle qui consiste à utiliser les bits les plus bas d'un pointeur aligné pour stocker des informations supplémentaires peut désormais être mis en œuvre sans avoir à orienter le cast du pointeur vers un entier ou inversement.
Rust 1.84 stabilise le résolveur de version minimale de Rust (Minimum Supported Rust Version, MSRV), qui préfère les versions de dépendances compatibles avec la MSRV déclarée du projet. Grâce à la sélection de la version MSRV, les mainteneurs n'ont pas à sélectionner manuellement des versions plus anciennes pour chaque dépendance, ce qui allège le travail de support des chaînes d'outils plus anciennes. Les développeurs peuvent choisir d'utiliser le résolveur de MSRV via .cargo/config.toml.
D'autres évolutions
Toujours dans Rust 1.84, le compilateur Rust passe à une nouvelle implémentation pour le résolveur de traits. « Le résolveur de traits de dernière génération est une ré-implémentation d'un composant central du système de types de Rust et il est responsable de la vérification de la validité des limites des traits », a expliqué l'équipe de Rust. Il est également utilisé par d'autres parties du système de types, telles que la normalisation et la mise en équation des types. Avec la version 1.84, le dernier résolveur sert à vérifier la cohérence des traits impl, en s'assurant qu'il y a au plus une implémentation d'un trait pour un type donné. Cela corrige certains problèmes de correction théorique de l'ancienne implémentation. Rust 1.84 stabilise aussi plus d'une douzaine d'API.
Annoncée le 9 janvier, la version 1.84 de Rust peut être installée via rustup pour ceux qui ont installé une version précédente, à l'aide de la commande rustup update stable. Rust 1.84 fait suite à la publication, fin novembre, de Rust 1.83, qui étendait les capacités du code s'exécutant dans des contextes const.
Commentaire