Sélectionner une page

Formation > Blog > Langage > Rust 1.83 : les nouveautés qui bouleversent le code moderne

Rust, ce langage de programmation qui a pour mot d’ordre la performance et la sécurité, s’est vu amélioré vers sa version la plus stable et efficace. La version 1.83 apporte de nombreux correctifs sur des points cruciaux comme le « const » ou sur les « API ».

Dans cet article, je vais vous faire le descriptif de tous les changements apportés par cette mise à jour 1.83.

L’équipe Ambient IT

Quels sont les ajouts majeurs apportés avec Rust 1.83 ?

Parmi les changements introduits par cette mise à jour, certains se démarquent comme véritablement majeurs. En voici une liste et la présentation de ces nouveautés.

Les nouvelles capacités « const »

La version 1.83 élargit les capacités des « const », permettant une évaluation accrue du code à la compilation. Il est désormais possible de créer des références à des variables « static » dans des contextes « const ».

Exemple de code :

static S: i32 = 25;

const C: &i32 = &S;

Il est important de noter cependant que la lecture de la valeur d’une valeur « static » « mutable » ou « interior mutable » n’est pas autorisée dans les contextes « const ».

Exemple de code :

static mut S: i32 = 0;

 const C1: i32 = unsafe { S };

// error: constant accesses mutable global memory 

const C2: &i32 = unsafe { &S }; 

// error: encountered reference to mutable memory in `const`

Grâce à cet ajout majeur, la simplification du code et l’optimisation des bibliothèques n’ont jamais été aussi simples.

Stabilisation des nouvelles fonctionnalités et API

Rust 1.83 est livrée avec de toutes nouvelles fonctionnalités qui sont désormais stables dans le contexte « const ». Voici la liste des « API » principales stabilisée :

  • Dans le ControlFlow : « break_value », « continue_value », « map_break », « map_continue ».
  • BufRead : skip_until
  • Errorkind : « ArgumentListTooLong », « Deadlock », « DirectoryNotEmpty », »ExecutableFileBusy ».
  • dans le contexte « const » : « Cell:into_inner », « Duration::as_secs_f32 », « Option:unwrap », »{float}:classify »,etc.

Je vous mets le lien de la liste complète de tous les nouveaux « API » Rust 1.83.

Améliorations du compilateur et mise à jour de l’Unicode à la version 16.0.0

Ajout de nouvelles cibles tiers 3 comme « aarch64_unknown_nto_qnx700 », « arm64e-apple-tvos », » riscv32-wrs-vxworks ». Dépréciation du « -Csoft-float » pour encourager les alternatives plus sûres.

Correctifs macOS sur le processus de liaison, ne nécessite plus de correctifs manuels. Amélioration de la prise en charge des caractères récents, garantissant une meilleure compatibilité avec les nouvelles normes Unicode.

Amélioration importante de la compatibilité

Les notes de Rust 1.83 révèlent les correctifs effectués pour maintenir la cohérence du langage et éviter les erreurs lors de la migration.

Correctif apporté sur la compatibilité macOS, À partir de Rust 1.83, le compilateur ajuste automatiquement la cible de déploiement macOS.

Cependant, certains environnements pourraient exiger des ajustements manuels, comme définir explicitement la variable ( « MACOSX_DEPLOYMENT_TARGET ») ou encore ajuster les attributs « #[link] » pour pointer vers les frameworks appropriés.

Dépréciation du flag « -Csoft-float » et correctif secondaire

Concernant la Dépréciation du flag « -Csoft-float »: le problème est que le « -Csoft-float » utilisé pour contrôler le support de calculs en « virgule flottante », sur certaines architectures, est considéré comme non sécurisé.

Depuis le 1.83, le flag est devenu obsolète, encourageant ainsi par la même occasion les développeurs à utiliser les alternatives modernes et plus sûres pour gérer les calculs en « virgule flottante ».

Avec la mise à jour de Rust, de petits correctifs internes ont été effectués. Ce qui a permis une nette amélioration du compilateur. Ce qui facilite le développement pour des environnements spécialisés.

Ces correctifs ont apporté une optimisation sur le compilateur et la bibliothèque standard pour réduire les erreurs et améliorer les performances. Les développeurs peuvent s’attendre à une expérience plus fiable et fluide.

Amélioration apportée par la version 1.83

En conclusion, je qualifierai la mise à jour de Rust de majeure. En effet, les modifications apportées par le patch note 1.83 redéfinie, modernisent et facilitent énormément la façon de coder avec Rust.

L’ajout et le correctif de nombreux « API » vont dans ce sens, les nouvelles extensions de contexte « const » et les améliorations du compilateur font de Rust 1.83 un langage de programmation ultra-performant et très fiable à utiliser.

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp