Disponibilité du magazine en kiosques

Suite à la faillite de plusieurs sociétés de distribution de presse (journaux et magazines), conséquence de la liquidation judiciaire de Presstalis, des centaines de kiosques et points de vente de presse ne reçoivent plus du tout, ou très partiellement, de magazines, dont Programmez!.

En attendant que la situation puisse revenir à la normale, la meilleure solution est l’abonnement.

Sortie de Rust 1.35

Par:
fredericmazue

mar, 28/05/2019 - 15:48

L'équipe du langage Rust annonce la disponibilité de la version 1.35. Rust est un langage de programmation qui permet à chacun de concevoir des logiciels fiables et efficaces, souligne pour l'occasion l'équipe dans le billet annonçant cette disponibilité.

Les deux principales nouveautés mises en avant sont que :

1/ Les traits FnOnce, FnMut, et Fn sont désormais implémentés pour Box<FnOnce>, Box<FnMut> et Box<Fn> respectivement.

2/ Depuis Rust 1.19.0, il est possible de contraindre les fermetures (closures) dans des pointeurs de fonction. Par exemple :

fn twice(x: u8, f: fn(u8) -> u8) -> u8 {
    f(f(x))
}

fn main() {
    assert_eq!(42, twice(0, |x| x + 21));
}

Mais ceci n'était pas applicable aux pointeurs de fonction unsafe. Avec Rust 1.35, ça le devient :

unsafe fn call_unsafe_fn_ptr(f: unsafe fn()) {
    f()
}

fn main() {
    unsafe {
        call_unsafe_fn_ptr(|| {
            dbg!();
        });
    }
}

A remarquer encore, la macro dbg! qui est apparue avec Rust 1.32 peut désormais être utilisée sans argument.

Exemple d'utilisation classique :

fn main() {
    let mut x = 0;

    if dbg!(x == 1) {
        x += 1;
    } 
   dbg!(x);
}

affiche

[src/main.rs:4] x == 1 = false
[src/main.rs:8] x = 0

Utilisée sans argument dbg! permet de tracer le flux d'exécution de l'application. Par exemple :

fn main() {
    let condition = true;

    if condition {
        dbg!();
    }
}

affiche

[src/main.rs:5]

A noter enfin la stabilisation d'un grand nombre d'API.

Rust est un logiciel libre disponible sur GitHub. Cette page du projet récapitule toutes les nouveautés de Rust 1.35.