Licence CC BY

La version stable de Rust 1.26.2 est désormais disponible !

et vient stabiliser le fonctionnement du pattern matching

Rust est un langage de programmation système axé sur la sécurité, la rapidité et la concurrence.

Pour mettre à jour votre version stable, il suffit d’exécuter la commande habituelle.

1
$ rustup update stable

Si vous ne disposez pas de rustup, vous pouvez en obtenir une copie sur la page de téléchargement du site officiel. N’hésitez pas également à consulter la release note de la 1.26.2 sur GitHub !

Quoi de neuf ?

De nouveaux correctifs ont été apportés, principalement axés sur les expressions (et les vérifications sous-jacentes) permises par le compilateur. Comme pour la 1.26.1, cette mise à jour n’a pour but que de stabiliser les fonctionnalités existantes.

Bug dans la règle des emprunts mutables

En dehors des blocs unsafe, le compilateur ne permet pas deux accès en écriture sur une même ressource en simultané. Toutefois, un bug est survenu, suite à un recyclage apporté par la 1.26.0 visant à améliorer l’ergonomie de match, permettant ainsi de casser la règle précédemment citée.

Ici, par exemple, nous disposons de deux accès en écriture sur bar au même moment.

1
2
3
4
5
6
7
8
let mut foo = Some("foo".to_string());
let bar = &mut foo;
match bar {
    Some(baz) => {
        bar.take(); // Should not be permitted, as baz has a unique reference to the bar pointer.
    },
    None => unreachable!(),
}

En réponse à cela, la version 1.26.2 vient corriger ce problème. Désormais, la vérification est interrompue et renvoie une erreur lorsque le cas survient.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
error[E0499]: cannot borrow `*bar` as mutable more than once at a time
 --> src/main.rs:6:9
  |
5 |     Some(baz) => {
  |          --- first mutable borrow occurs here
6 |         bar.take(); // Should not be permitted, as baz has a ...
  |         ^^^ second mutable borrow occurs here
...
9 | }
  | - first borrow ends here

error: aborting due to previous error

En définitive, l’équipe Rust a pris la décision de publier ce patch le plus rapidement possible pour éviter d’étendre inutilement le laps de temps pendant lequel les compilateurs stables sont affectés par ce bug.

Source

Le blog de l’équipe Rust

Voir aussi

8 commentaires

Vraie question : est-ce vraiment intéressant de sortir un billet pour chaque version mineure du langage ?

Je ne sais pas quel est le rythme de sortie normal, mais ton précédent billet a 3 jours. Là ça va, mais si chacun fait la même chose pour son langage préféré, le fil des billets va vite devenir illisible.

Vraie question : est-ce vraiment intéressant de sortir un billet pour chaque version mineure du langage ?

Je ne sais pas quel est le rythme de sortie normal, mais ton précédent billet a 3 jours. Là ça va, mais si chacun fait la même chose pour son langage préféré, le fil des billets va vite devenir illisible.

SpaceFox

Ça deviendrait quelque chose de moins gênant en format article, avec un peu plus de contenu sur d’autres choses que juste la nouvelle mise à jour. Mais ça demande certainement plus de personne pour l’écrire.

Autrement mon avis est que la version originale est en anglais, donc avoir une version française est toujours intéressant.

Normalement Rust évolue sur un rythme de 6 semaines sauf cas exceptionnel, si je ne me trompe pas. Du coup je pense que c’est raisonnable un billet à chaque version et vous n’êtes pas obligés de tous les choisir donc pas de spam de la page d’accueil (et maintenant je sais que je peux m’abonner à songbird si je veux des nouvelles des patchs de temps en temps).

Vraie question : est-ce vraiment intéressant de sortir un billet pour chaque version mineure du langage ?

Je ne sais pas quel est le rythme de sortie normal, mais ton précédent billet a 3 jours. Là ça va, mais si chacun fait la même chose pour son langage préféré, le fil des billets va vite devenir illisible.

SpaceFox

T’es pas au bout de tes peines parce que la 1.27 arrive dans très peu elle aussi. :D

+2 -0

Bonjour,

Vraie question : est-ce vraiment intéressant de sortir un billet pour chaque version mineure du langage ?

Comme l’a dit l’un de mes vdd, c’est exceptionnel. Ensuite, je rédige ces billets en tant que billet justement pour ne pas déranger qui que ce soit et ne viser que les lecteurs qui pourraient être intéressés (en cherchant de l’actualité via Google par exemple). Je n’ai jamais demandé à vous faire valider mes billets.

Ça deviendrait quelque chose de moins gênant en format article, avec un peu plus de contenu sur d’autres choses que juste la nouvelle mise à jour. Mais ça demande certainement plus de personne pour l’écrire.

Non, ce n’est jamais un problème, j’ai toujours réussi à rédiger mes articles seul. Là, encore une fois, le manque de contenu est exceptionnel. Le billet original ne souligne que ce bug qui est, selon moi, plutôt important malgré tout. C’est discutable, mais je fais toujours en sorte de ne pas meubler plus que nécessaire. Souvent c’est cool, parfois c’est chiant. Faut faire avec.

Rassurez-vous, je ne compte absolument pas flood l’actualité du site.

Merci pour vos retours en tout cas. Bonne journée ! :)

Ça deviendrait quelque chose de moins gênant en format article, avec un peu plus de contenu sur d’autres choses que juste la nouvelle mise à jour. Mais ça demande certainement plus de personne pour l’écrire.

Non, ce n’est jamais un problème, j’ai toujours réussi à rédiger mes articles seul. Là, encore une fois, le manque de contenu est exceptionnel. Le billet original ne souligne que ce bug qui est, selon moi, plutôt important malgré tout. C’est discutable, mais je fais toujours en sorte de ne pas meubler plus que nécessaire. Souvent c’est cool, parfois c’est chiant. Faut faire avec.

Rassurez-vous, je ne compte absolument pas flood l’actualité du site.

Merci pour vos retours en tout cas. Bonne journée ! :)

Songbird

je soulignais juste que ça pouvait devenir du "news in the rust world" plutot que juste une reprise du blog officiel, à l’image de ce qui se fait en général dans la communauté Rust. ;)

+0 -0

je soulignais juste que ça pouvait devenir du "news in the rust world" plutot que juste une reprise du blog officiel.

D’accord, je vois. Seul souci, c’est que This Week in Rust! fait déjà ça. J’y ai pensé un temps et je trouvais que ça manquait d’intérêts (lorsque je tentais quelque chose dans ce style), amha.

Songbird

Le format de This Week in Rust! est plus réduit et exhaustif que ce qu’on ferait ici. Les articles ont toujours la même forme et sont principalement constitué de lien, mais c’est possible de faire quelque chose de plus construit et intéressant, qui ne s’adresse pas déjà à des gens qui font du rust.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte