Now Reading
Programmiersprache Rust 1.66 erweitert Enumerations und fern Abhängigkeiten

Programmiersprache Rust 1.66 erweitert Enumerations und fern Abhängigkeiten

Programmiersprache Rust 1.66 erweitert Enumerations und entfernt Abhängigkeiten

[ad_1]

Im turnusmäßigen Sechswochentakt ist dasjenige letzte Rust-Release des Jahres erschienen. Version 1.66 welcher Programmiersprache führt eine Vervollständigung z. Hd. Enumerations mit Feldern und vereinigen neuen Gebot z. Hd. den Paketmanager ein. Die ebenfalls neue Prozedur black_box dient dazu, Compiler-Optimierungen zu verhindern.

Rust erlaubt dasjenige Zuweisen von Diskriminanten intrinsisch eines enum bisher nur, solange es keine Felder enthält. Dasjenige ändert sich mit dem aktuellen Release, dasjenige Diskriminanten nebensächlich z. Hd. Enumerations mit Feldern erlaubt, vorausgesetzt welche eine Nicht korrupt-Darstellung nach sich ziehen:

#[repr(u8)]
enum Foo {
    A(u8),
    B(i8),
    Kohlenstoff(bool) = 42,
    D(u8),
}

Die Neuerung dient vor allem zum Zusammenspiel mit Kohlenstoff-Identifikator, um enums obig Sprachgrenzen hinweg mit festen Werten zu zuteilen. In der Tat ist z. Hd. Enumerations mit Feldern kein Typ-Casting obig as erlaubt. Ein Handle aufwärts die Diskriminante lässt sich obig die Prozedur mem::discriminant aus welcher Rust-Standardbibliothek abrufen.

Welcher Paketmanager cargo erhält in Rust 1.66 vereinigen neuen Unterbefehl: cargo remove fern manuell eine Dependency aus einer Crate, mithin einem Päckchen. Er ergänzt den in Rust 1.62 eingeführten Gebot cargo add, welcher dazu dient, manuell eine Sucht zu einem Crate hinzuzufügen.

Eine weitere Neuerung dient vor allem z. Hd. Benchmarks und Untersuchungen des vom Compiler erzeugen Codes: Die neu stabilisierte Prozedur hint::black_box unterbindet Compiler-Optimierungen. Dazu gibt sie vor, dass sie die übergebenen Werte in beliebiger Form verarbeitet und vereinigen Zahl zurückgibt, obwohl sie tatsächlich gar nichts macht.

Dasjenige einfache Paradigma aus dem Rust-Weblog lässt sich im Compiler Explorer reproduzieren, während man dort die Zeile mit black_box auskommentiert und so vereinigen Blick aufwärts den optimierten im Vergleich zum nicht optimierten Maschinencode erhält:

use std::hint::black_box;

fn push_cap(v: &mut Vec<i32>) {
    for i in 0..4 {
        v.push(i);
        black_box(v.as_ptr());
    }
}

Weitere Neuerungen in Rust 1.66 wie ..=X-Ranges in Patterns lassen sich dem Rust-Weblog schlussfolgern. Wie in der Regel können Entwicklerinnen und Entwickler, die Rust schon installiert nach sich ziehen, dasjenige aktuelle Release obig rustup update stable herunterladen. Pro diejenigen, die noch kein Rust verwenden, ist dasjenige rustup-Tool aufwärts welcher Download-Seite separat verfügbar.


(rme)

[ad_2]
View Comments (0)

Leave a Reply

Your email address will not be published.

Scroll To Top