IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Rust 1.49.0 est disponible avec l'amélioration des supports de Linux ARM 64 bits
MacOS et Windows ARM 64 bits

Le , par Bill Fassinou

274PARTAGES

15  0 
Rust est un langage de programmation open source, dont le code source est disponible sur GitHub, qui permet à chacun de créer des logiciels fiables et efficaces. L'équipe de développement de Rust a publié Rust 1.49.0 ce 31 décembre 2020 pour clôturer l'année avec quelques modifications. Dans cette version, elle a amélioré la prise en charge de l'architecture ARM 64 bits pour Linux, macOS et Windows et a également amélioré le framework de test. Voici ci-dessous les modifications les plus notables dans Rust 1.49.0.


Linux ARM 64 bits atteint le niveau 1

Selon l'équipe de Rust, le compilateur Rust prend en charge une grande variété de cibles, mais elle ne peut pas fournir le même niveau de support pour toutes. Pour indiquer clairement le niveau de prise en charge de chaque cible, elle utilise un système de hiérarchisation :

  • les cibles de niveau 3 sont techniquement supportées par le compilateur, mais l'équipe ne vérifie pas si leur code est construit ou s'il passe les tests nécessaires. En outre, l'équipe ne fournit pas de binaires préconstruits pour ses versions ;
  • les cibles de niveau 2 sont garanties à la construction et l'équipe de Rust fournie des binaires préconstruits, mais elle n'exécute pas la suite de tests sur ces plateformes, ce qui signifie que les binaires produits peuvent ne pas fonctionner ou présenter des bogues ;
  • les cibles de niveau 1 offrent la meilleure garantie de support, et l'équipe de Rust exécute tous les tests sur ces plateformes pour chaque modification fusionnée dans le compilateur. Des binaires préconstruits sont également disponibles.

Rust 1.49.0 promeut la cible aarch64-unknown-linux-gnu au niveau 1 de support, apportant ainsi les plus hautes garanties de l'équipe aux utilisateurs de systèmes ARM 64 bits sous Linux. « Nous espérons que ce changement bénéficiera aux charges de travail allant des systèmes embarqués aux ordinateurs de bureau et aux serveurs. C'est une étape importante pour le projet, car c'est la première fois qu'une cible non x86 atteint le niveau 1 de prise en charge : nous espérons que cela ouvrira la voie à d'autres cibles pour atteindre notre niveau le plus élevé à l'avenir », a déclaré l'équipe.

En outre, l'équipe de Rust a déclaré qu'Android n'est pas concerné par ce changement, car il utilise une cible de niveau 2 différente.

macOS et Windows ARM 64 bits atteignent le niveau 2

Avec la sortie de Rust 1.49.0, la cible aarch64-apple-darwin apporte le support de Rust sur les systèmes Apple M1. De même, la cible aarch64-pc-windows-msvc apporte le support de Rust sur les appareils ARM 64 bits fonctionnant sous Windows. Selon l'équipe de Rust, les développeurs peuvent s'attendre à ce que ces deux cibles aient des binaires précompilés installables avec rustup à partir de maintenant. Toutefois, l'équipe n'a pas exécuté les tests sur ces plateformes, il pourrait donc y avoir des bogues ou des instabilités.

Les autres améliorations et changements dans Rust 1.49.0

Langage

  • Unions peut désormais mettre en œuvre Drop, et vous pouvez désormais avoir un champ dans un "union" avec ManuallyDrop<T> ;
  • vous pouvez maintenant transformer des énumérations non utilisées en nombres entiers ;
  • vous pouvez maintenant lier par référence et par déplacement dans des modèles. Cela vous permet d'emprunter de manière sélective les composants individuels d'un type.

Compilateur


  • ajout du support de niveau 1 pour aarch64-unknown-linux-gnu ;
  • ajout du support de niveau 2 pour aarch64-apple-darwin ;
  • ajout du support de niveau 2 pour aarch64-pc-windows-msvc ;
  • ajout du support de niveau 3 pour mipsel-unknown-none ;
  • augmentation de la version LLVM minimale supportée à LLVM 9 ;
  • la sortie des threads générés lors des tests est maintenant capturée ;
  • changement des valeurs de "os" et de "vendor" à "none" et "unknown" pour certaines cibles.

Bibliothèques

  • RangeInclusive vérifie désormais l'épuisement des appels lors de la composition et de l'indexation ;
  • ToString::to_string ne réduit plus le tampon interne dans l'implémentation par défaut ;
  • les ops::{Index, IndexMut} sont maintenant implémentées pour les tableaux de taille fixe, quelle que soit leur longueur.

Les API stabilisées

  • slice::select_nth_unstable ;
  • slice::select_nth_unstable_by ;
  • slice::select_nth_unstable_by_key.

Cargo

  • ajout de la variable d'environnement CARGO_PRIMARY_PACKAGE pour le temps de construction. Cette variable sera définie si la caisse (crate) en cours de construction est une caisse que l'utilisateur a choisi de construire, soit avec -p, soit par défaut ;
  • vous pouvez maintenant utiliser des modèles globaux lors de la spécification de paquets et de cibles.

Source : Note de version de Rust 1.49.0

Et vous ?

Que pensez-vous de Rust 1.49.0 ?

Voir aussi

Rust 1.48.0 est disponible avec quelques modifications dans rustdoc pour rendre la rédaction de documentation encore plus facile

Rust 1.47.0 est disponible et s'accompagne de la prise en charge par défaut de LLVM 11, ainsi que de neuf API qui passent en version stable dans la bibliothèque

Rust 1.46.0 est disponible et s'accompagne de plusieurs nouveautés dans const fn, ainsi que de deux nouvelles API dans la bibliothèque standard

Rust 1.45.0 est disponible avec la correction du problème de la conversion entre des entiers et des flottants et de nombreuses fonctionnalités

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 02/01/2021 à 21:55
C'est simplement le système de "release cadidate" qui est en fait un fonctionnement très commun dans le logiciel. La version qui est supposée devenir la version officielle est mise a disposition des testeurs quelques jours avant la publication officielle. Si aucun problème bloquant n'est détecté, cette version est promue en tant que version finale, en l'état, ce qui explique le décalage de date.

Par exemple voici l'annonce de pré-test pour la version 1.49 : https://blog.rust-lang.org/inside-ru...rerelease.html
2  0 
Avatar de denisys
Membre chevronné https://www.developpez.com
Le 02/01/2021 à 21:09
Intéressant ce sujet !!
Sur l'une de mes VM , lorsque je vérifie la version de Rust.
j’obtiens le résultat suivant :
Code : Sélectionner tout
1
2
C:\Users\denisys>rustc --version
rustc 1.48.0 (7eac88abb 2020-11-16)
Et effectivement , je n'avais pas fait de mise a jour de la version .
Ce qu'il y a d'intéressant a constater .
dans l'identification de la version , il y a :
1. un ID
2. un numéro de version
3. une date de publication (format : ISO 8601)
Et si je me réfère a la date de la publication de l'information
Rust 1.48.0
@rustbot rustbot released this on 19 Nov 2020
---
https://github.com/rust-lang/rust/re...ses/tag/1.48.0
-*-*-
A première vue , il y a un décalage entre l'annonce , et , le mise en service , de la version .
1  0 
Avatar de denisys
Membre chevronné https://www.developpez.com
Le 02/01/2021 à 14:15
Code : Sélectionner tout
1
2
C:\Users\denisys>rustc --version
rustc 1.49.0 (e1884a8e3 2020-12-29)
En fait , après avoir fait l'installation , il est préférable de faire une mise a jour systématique de la version.
Code : Sélectionner tout
C:\Users\denisys>rustup update
0  0