L’équipe en charge du développement de Rust a présenté la version stable 1.89.0 du langage. Parmi les avancées, Rust supporte « _ » comme argument des paramètres génériques const, en déduisant la valeur à partir du contexte environnant. À noter que les développeurs qui ont installé une version précédente de Rust via rustup peuvent obtenir Rust 1.89 en exécutant la commande rustup update stable.
Les responsables de Rust a fourni l’exemple suivant dans son annonce de la sortie :
pub fn all_false() -> [bool; LEN] {
[false; _]
}
« Tout comme les règles régissant l'utilisation de « _ » en tant que type, « _ » n'est pas autorisé en tant qu'argument pour les génériques const dans une signature », a écrit l'équipe :
// This is not allowedpub const fn all_false()-> [bool; _] { [false; LEN]}// Neither is this
Dans Rust 1.89, les doctests seront désormais testés lors de l'exécution de cargo test --doc --target other_target. Cela peut entraîner certaines ruptures en raison des doctests « potentiellement défaillants » qui sont désormais testés. Les tests défaillants peuvent être désactivés en annotant le doctest avec ignore-. L'équipe a fourni cet exemple :
/// ```ignore-x86_64
/// panic!("something")
/// ```
pub fn my_function() { }
Rust 1.89 fait suite à la version 1.88 de Rust, sortie le 26 juin, qui prenait en charge les fonctions « Naked ».
D'autres fonctionnalités
Parmi les autres fonctionnalités de Rust 1.89, on peut citer
- i128 et u128 ne déclenchent plus le lint improper_ctypes_definitions, ce qui signifie que ces types peuvent être utilisés dans les fonctions extern « C » sans avertissement
- Les fonctions extern « C » sur la cible wasm32-unknown-unknown ont désormais une ABI conforme aux normes
- Pour les plateformes, x86_64-apple-darwin passe du niveau Tier 1 avec outils hôtes au niveau Tier 2 avec outils hôtes
- Un lint mismatched_lifetime_syntaxes a été ajouté pour savoir quand la même durée de vie est référencée par différentes catégories de syntaxe entre les arguments de fonction et les valeurs de retour.

Commentaire