La version 1.93 du langage de programmation Rust est disponible, introduisant musl 1.2.5, des améliorations de l'allocateur et des attributs cfg sur les lignes asm!Rust 1.93 est désormais disponible, avec des mises à jour qui concernent à la fois les développeurs et l'écosystème Rust au sens large. Dans cette version, toutes les cibles *-linux-musl sont livrées avec la version 1.2.5 de musl, qui remplace le bundle 1.2.3 précédent. Ce changement apporte diverses corrections de bogues et améliorations. Cependant, il introduit également un changement radical qui affecte les builds musl statiques pour les développeurs x86_64, AArch64 et POWER PPC64LE.
Rust est un langage de programmation compilé multi-paradigme qui met l'accent sur la performance, la sûreté des types et la concurrence. Il assure la sécurité mémoire (en), ce qui signifie que toutes les références pointent vers une mémoire valide, sans nécessiter l'utilisation de techniques de gestion de la mémoire automatisée telles que le ramasse-miettes. Afin d'assurer la sécurité de la mémoire et d'empêcher une situation de compétition aux données, son « vérificateur d'emprunts » suit la durée de vie des objets de toutes les références dans un programme à la compilation.
Rust 1.93 est désormais disponible, avec des mises à jour qui concernent à la fois les développeurs et l'écosystème Rust au sens large. Dans cette version, toutes les cibles *-linux-musl sont livrées avec la version 1.2.5 de musl, qui remplace le bundle 1.2.3 précédent. Ce changement apporte diverses corrections de bogues et améliorations. Cependant, il introduit également un changement radical qui affecte les builds musl statiques pour les développeurs x86_64, AArch64 et POWER PPC64LE.
Outre les mises à jour de la plateforme, la bibliothèque standard Rust a subi des changements internes. Les allocateurs globaux écrits en Rust peuvent désormais utiliser en toute sécurité la macro de stockage local au thread et l'inspection des threads sans problèmes de réentrance. Cela est rendu possible en s'appuyant sur l'allocateur système pour les opérations associées.
S'appuyant sur la facilité d'utilisation du langage, Rust 1.93 permet la compilation conditionnelle (cfg) pour des instructions individuelles dans des blocs d'assemblage en ligne. Auparavant, pour obtenir un contrôle fin, il fallait dupliquer des blocs asm! entiers. Désormais, les développeurs peuvent inclure des instructions de manière conditionnelle, ce qui améliore la clarté et la maintenabilité du code.
À la suite de ces changements apportés au langage et à la plate-forme, Rust 1.93 stabilise également plusieurs nouvelles API dans la bibliothèque standard, offrant des fonctionnalités supplémentaires aux auteurs de crates et aux utilisateurs finaux.
Mise à jour de musl intégré vers la version 1.2.5
Les différentes cibles *-linux-musl sont désormais toutes livrées avec musl 1.2.5. Cela affecte principalement les builds musl statiques pour x86_64, aarch64 et powerpc64le qui incluaient musl 1.2.3. Cette mise à jour comprend plusieurs corrections et améliorations, ainsi qu'un changement majeur qui affecte l'écosystème Rust.
Pour l'écosystème Rust, la principale motivation de cette mise à jour est d'apporter des améliorations majeures au résolveur DNS de musl, livré dans la version 1.2.4 et corrigé dans la version 1.2.5. Lors de l'utilisation de cibles musl pour la liaison statique, cela devrait rendre les binaires Linux portables qui effectuent des opérations réseau plus fiables, en particulier face à des enregistrements DNS volumineux et des serveurs de noms récursifs.
Cependant, la version 1.2.4 s'accompagne également d'un changement radical : la suppression de plusieurs symboles de compatibilité hérités que la crate libc Rust utilisait. Une correction a été apportée dans la version 0.2.146 de libc en juin 2023 (il y a 2,5 ans), et elle a été suffisamment largement diffusée pour apporter cette modification aux cibles Rust.
Autoriser l'allocateur global à utiliser le stockage local au thread
Rust 1.93 ajuste les composants internes de la bibliothèque standard afin de permettre aux allocateurs globaux écrits en Rust d'utiliser std's thread_local! et std::thread::current sans problème de réentrance, en utilisant à la place l'allocateur système.
Attributs cfg sur les lignes asm!
Auparavant, si certaines parties d'une section d'assemblage en ligne devaient être cfg, le bloc asm! complet devait être répété avec et sans cette section. Dans la version 1.93, cfg peut désormais être appliqué à des instructions individuelles dans le bloc asm!
| Code Rust : | Sélectionner tout |
1 2 3 4 5 6 7 8 | asm!( // or global_asm! or naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // ... #[cfg(target_feature = "sse2")] a = const 123, // only used on sse2 ); |
Source : Announcing Rust 1.93.0
Et vous ?
Pensez-vous que cette annonce est crédible ou pertinente ?
Quel est votre avis sur le sujet ? Voir aussi :
La version 1.92 du langage de programmation Rust est disponible, introduisant les tables de déroulement par défaut et affinant les vérifications de lints et d'attributs
C'est désormais officiel : Rust dans le noyau Linux sort du cadre expérimental. Le Rust vient de faire l'objet d'intégration comme partie essentielle du kernel aux côtés du toujours présent langage C
La fondation Rust annonce la création d'un fonds pour les mainteneurs afin d'assurer la continuité et de soutenir les rôles à long terme des développeurs qui rendent possible le langage de programmation Rust
Vous avez lu gratuitement 2 069 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.