Das Entwicklerteam freut sich, Ihnen Rust 1.36 vorzustellen!
Was gibt es Neues in Rust 1.36?
Jetzt im Detail:
- In Rust 1.36 wurde endlich der Trait Future stabilisiert. Das Crate alloc.
- Ab Rust 1.36 befinden sich Teile von std, die von einem globalen Allocator abhängen (z.B. Vec), im Crate alloc. Jetzt reexportiert std diese Teile.
Mehr darüber MaybeUninit anstelle von mem::uninitialized.. - In früheren Versionen ermöglichte mem::uninitialized, die Initialisierungsprüfung zu umgehen. Dies wurde für die späte Allocation von Arrays verwendet, ist jedoch sehr gefährlich (
), weshalb der Typ MaybeUninit stabilisiert wurde, der sicherer ist.weitere InformationenDa MaybeUninit eine sicherere Alternative darstellt, wird mem::uninitialized ab Rust 1.38 als veraltet gelten.
Wenn Sie mehr über nicht initialisierten Speicher erfahren möchten, können Sie den Blogbeitrag (Alexis Beingessner) lesen.
NLL für Rust 2015. - Im Ankündigungsartikel zu
Rust 1.31.0 Rust 1.31.0 Entwickler haben uns über NLL (Non-Lexical Lifetime) berichtet, eine Verbesserung der Sprache, die den Borrow-Checker intelligenter und benutzerfreundlicher macht. Beispiel:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // Das war vor 1.31.0 nicht erlaubt.
}In 1.31.0 arbeitete NLL nur in Rust 2018, mit dem Versprechen, dass die Entwickler Unterstützung für Rust 2015 hinzufügen würden.
Wenn Sie mehr über NLL erfahren möchten, können Sie dazu in diesem Blogbeitrag (Felix Klocks) nachlesen. - Ein neues Cargo-Flag —offline.
In Rust 1.36 wurde ein neues Flag für Cargo stabilisiert. Das Flag —offline weist Cargo an, lokal zwischengespeicherte Abhängigkeiten zu verwenden, damit sie später auch ohne Internet genutzt werden können. Wenn die benötigten Abhängigkeiten im Offline-Modus nicht verfügbar sind und das Internet dennoch benötigt wird, gibt Cargo einen Fehler zurück. Um Abhängigkeiten vorab herunterzuladen, kann der Befehl cargo fetch verwendet werden, der alle Abhängigkeiten herunterlädt. - Hier Sie können eine detailliertere Übersicht über die Änderungen lesen.
Es gibt auch Änderungen in der Standardbibliothek:
- Jetzt kann das Makro dbg!() mehrere Argumente annehmen.
- Eine Reihe von APIs sind jetzt als const markiert:
- Neue APIs, die stabilisiert wurden:
- Weitere Änderungen in der Standardbibliothek finden Sie hier.
Weitere Änderungen Rust, Cargo und Clippy.
Quelle: linux.org.ru
