
macOS et Windows ARM 64 bits
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 ?

Voir aussi




Vous avez lu gratuitement 5 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.