Sortie de Rust 1.25

Par:
fredericmazue

jeu, 12/04/2018 - 15:03

L'équipe Rust annonce la sortie de la version 1.25 stable du langage.

Contrairement aux dernières sorties qui étaient relativement mineures, cette mouture 1.25 content beaucoup de chose, souligne l'équipe de développement dans son annonce.

Notamment, pour commencer, le compilateur rustc s'appuie désormais sur LLVM 6 au lieu de LLVM 4. L'équipe de Rust détaille les atouts de cette mise à niveau ici. Principalement, vec LLVM 6 les microcontrôleurs AVR sont beaucoup mieux supportés.

A remarquer l'arrivée de l'importation imbriquée pour le directive use.

Auparavant il fallait par exemple écrire :

use std::fs::File;
use std::io::Read;
use std::path::{Path, PathBuf};

Maintenant une seule lige de code est nécessaire :

use std::{fs::File, io::Read, path::{Path, PathBuf}};

Ou, si l'on souhaite privilégier la clarté, on écrira :

use std::{
    fs::File,
    io::Read,
    path::{
        Path,
        PathBuf
    }
};

Les programmeurs de bas niveai apprécieront la nouvelle possibilité de définir l'alignement des structures de données en mémoire. Par exemple :

struct Number(i32);
assert_eq!(std::mem::align_of::<Number>(), 4);
assert_eq!(std::mem::size_of::<Number>(), 4); 

#[repr(align(16))]
struct Align16(i32);

assert_eq!(std::mem::align_of::<Align16>(), 16);
assert_eq!(std::mem::size_of::<Align16>(), 16);

A noter encore, dans la librairie standard, l'arrivée de la structure std::ptr::NonNull<T>. pour gérer des pontieurs mutables totu en garantissant que le pointeur n'est jamais nul.

Rust 1.25 est disponible depuis son site officiel.