Rust 1.72

Par:
admin

ven, 25/08/2023 - 12:53

La fondation Mozilla a publié Rust 1.72. Cette nouvelle version de son langage maison se distingue principalement par une évolution de l'opérateur cfg et de l'évaluation de const.

Le code Rust peut être activé de manière conditionnelle à l'aide de cfg, par exemple pour fournir certaines fonctions uniquement avec certaines fonctionnalités de caisse, ou uniquement sur des plates-formes particulières. Auparavant, les éléments désactivés de cette manière étaient effectivement invisibles pour le compilateur. Désormais, cependant, le compilateur se souviendra du nom et des conditions cfg de ces éléments, afin de pouvoir signaler (par exemple) si une fonction que vous avez essayé d'appeler n'est pas disponible car vous devez activer une fonctionnalité de caisse.

Pour empêcher l'évaluation const fournie par l'utilisateur d'entrer dans une boucle infinie au moment de la compilation ou de prendre un temps illimité au moment de la compilation, Rust limitait auparavant le nombre maximum d'instructions exécutées dans le cadre d'une évaluation constante donnée. Cependant, un code Rust particulièrement créatif pourrait atteindre ces limites et produire une erreur de compilation. Pire encore, le fait que le code atteigne la limite peut varier considérablement en fonction des bibliothèques invoquées par l'utilisateur. Si une bibliothèque que vous avez invoquée divise une instruction en deux dans l'une de ses fonctions, votre code pourrait alors échouer à se compiler. Désormais, vous pouvez effectuer un nombre illimité d'évaluations const au moment de la compilation. Pour éviter d'avoir de longues compilations sans retour, le compilateur émettra toujours un message après que votre code de compilation ait été exécuté pendant un certain temps et répétera ce message après une période qui double à chaque fois.