Programmiersprache Rust 1.66 erweitert Enumerations und fern 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.
Zugewiesener Zahl
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.
Entfernte Sucht und Kompilieren ohne Optimierung
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)