Rust 1.78 est déjà sorti et voici ses nouveautés

logo rouille

Rust est un langage de programmation compilé, polyvalent et multi-paradigme.

La nouvelle version de Rust 1.78 est déjà sortie et de nouvelles fonctionnalités sont implémentées, ainsi que la stabilisation de certaines API, des améliorations dans Cargo et bien plus encore.

Pour ceux qui ne connaissent pas ce langage de programmation, ils doivent savoir que se concentre sur la sécurité de la mémoire et fournit les moyens d'atteindre un parallélisme élevé des tâches tout en évitant l'utilisation d'un ramasse-miettes et d'un temps d'exécution (le temps d'exécution est réduit à une initialisation de base et à une maintenance de bibliothèque standard).

Principales nouveautés de Rust 1.78

Dans cette nouvelle version présentée par Rust 1.78 a augmenté sa configuration minimale requise pour Windows 10, en plus que le compilateur a été modifié pour utiliser LLVM 18. Lors de l'utilisation de LLVM 18 pour les architectures x86-32 et x86-64, l'ABI associé aux types u128 et i128 a été modifié.

Concernant les changements, l'une des caractéristiques qui ressort est que Rust prend désormais en charge un espace de noms d'attribut  «#[diagnostic]", Quoi fournit un moyen d'influencer les messages d'erreur produits par le compilateur. Ceux-ci sont traités comme des indications que le compilateur n'est pas obligé d'utiliser, et ce n'est pas non plus une erreur de fournir un diagnostic que le compilateur ne reconnaît pas. Ce permet au code source de fournir des diagnostics même s'ils ne sont pas pris en charge par tous les compilateurs, qu'il s'agisse de versions différentes ou d'implémentations complètement différentes.

En outre, un cache global a été stabilisé dans Cargo qui stocke des informations sur l’utilisation des données la plus récente. Cette cache est située dans $CARGO_HOME/.global-cache et utilise SQLite pour sa mise en œuvre. Il se met automatiquement à jour pour refléter les dernières modifications apportées à l'index, au fichier crate, au répertoire de code, à git clone et à git checkout, améliorant ainsi l'efficacité et la rapidité des opérations de gestion des dépendances dans les projets de développement.

Une autre nouveauté de Rust 1.78 est que la bibliothèque standard Rust a Diverses déclarations pour les conditions préalables aux fonctions non sécurisées qui peut désormais être différé jusqu'à la génération du code. Cela permet d'effectuer ces contrôles historiquement, ils n'étaient activés que dans les builds «#[cfg(debug_assertions)]» pour éviter d'affecter les performances dans la version finale. Avec ce changement, les utilisateurs peuvent désormais détecter un comportement indéfini dans leur code, bien que les détails sur le degré de vérification ne soient généralement pas stables. Pour activer les vérifications, il suffit désormais d'activer les assertions de débogage pour les versions de test ou de débogage du code.

En plus de cela, maintenant comportement des fonctions de bibliothèque standard qui affectent l’alignement des pointeurs et des secteurs il est désormais prévisible au moment de l'exécution et dépend des données d'entrée. La fonction pointeur :: align_offset, qui calcule le décalage pour aligner le pointeur, renvoie désormais utiliser::MAX seulement si l'opération échoue. Les fonctions slice :: align_to et slice :: align_to_mut, qui transforme les tranches en une représentation avec une tranche centrale alignée et les tranches de début et de fin d'origine, renvoie désormais toujours la plus grande partie médiane.

En revanche, il est mentionné que Les API suivantes ont été déplacées vers la catégorie « stable »: impl Lire pour &Stdin, impl De pour io :: Erreur et la mise en œuvre implicite qui permet d'utiliser ?Taille.

De l' Autres changements qui se démarquent de cette nouvelle version:

  • Le deuxième niveau de prise en charge de la plateforme cible Add wasm32-wasip1 a été implémenté. Le deuxième niveau de prise en charge concerne une garantie de montage.
  • La plateforme wasm32-wasi-preview1-threads a été renommée wasm32-wasip1-threads.
  • Dans le gestionnaire de packages Cargo, la version 4 des fichiers de verrouillage (lockfile v4) a été stabilisée. Cargo utilise désormais cette version comme standard pour garantir la cohérence et la gestion efficace des dépendances entre les projets.

Si vous intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant.

Enfin, pour ceux qui sont Intéressé par une mise à niveau à partir d'une version précédente de Rust installé via rustup, vous pouvez obtenir la nouvelle version de Rust 1.78 avec :

rustup update stable

Si Rust n'est pas déjà installé sur votre système, vous pouvez le faire en exécutant la commande suivante dans un terminal :

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh