Lancée récemment, la version 1.93 de Rust propose plusieurs évolutions pour le langage de programmation. Parmi elles, la mise à jour améliore les opérations impliquant le résolveur de DNS pour l’implémentation de la bibliothèque standard musl. Il devrait rendre les binaires Linux plus fiables pour les opérations réseau face à des enregistrements DNS volumineux et à des serveurs de noms récursif. En particulier, les cibles *-linux-musl sont livrées avec la version 1.25 de musl. « Cela affecte principalement les builds musl statiques pour x86_64, aarch64 et powerpc64le, qui intégraient musl 1.2.3 », a indiqué l'équipe de Rust
A noter que l’actualisation de la bibliothèque musl s’accompagne également d’un changement radical : la suppression de plusieurs symboles de compatibilité hérités qui étaient utilisés par la crate libc Rust. En juin 2023, l’équipe de Rust avait publié un correctif allant dans ce sens au sein de libc 0.2.146. Elle estime que cette modification a été suffisamment diffusée et elle est donc prête à la généraliser pour l’ensemble des cibles.
D’autres évolutions
« Par ailleurs, Rust 1.93 ajuste les composants internes de la bibliothèque standard afin de permettre aux allocateurs globaux écrits en Rust d'utiliser thread_local! et std::thread::current de la bibliothèque std sans problème de réentrance, en utilisant à la place l'allocateur système », a expliqué l'équipe de Rust. Toujours dans Rust 1.93, il est désormais possible d’appliquer un attribut cfg à des instructions individuelles dans le bloc asm!. L'attribut cfg inclut de manière conditionnelle le formulaire auquel il est associé en fonction d'un prédicat de configuration. Enfin, Rust 1.93 stabilise 23 API.
Rust 1.93 fait suite à la sortie le mois dernier de Rust 1.92, qui introduisait les tables de déroulement par défaut et affinait les vérifications de lints et d'attributs. Les développeurs ayant installé les versions précédentes de Rust via rustup peuvent effectuer la mise à niveau en exécutant la commande rust update stable.