Release der Systemprogrammiersprache , entwickelt von Mozilla. Die Sprache fokussiert sich auf sichere Speichernutzung, gewährleistet eine automatische Speicherverwaltung und bietet Möglichkeiten zur hohen Parallelität bei der Ausführung von Aufgaben, ohne die Verwendung eines Garbage Collectors und eines Laufzeitsystems.
Das automatische Speichermanagement in Rust befreit den Entwickler von der Manipulation von Zeigern und schützt vor Problemen, die aus der niederleveligen Speicherbearbeitung resultieren, wie das Zugreifen auf freigegebenen Speicher, Dereferenzierung von Nullzeigern und Buffer-Überläufen. Für die Verteilung von Bibliotheken, den Aufbau und das Management von Abhängigkeiten entwickelt sich der Paketmanager , der es ermöglicht, die benötigten Bibliotheken für das Programm mit einem Klick zu erhalten. Für die Bereitstellung von Bibliotheken wird das Repository .
Haupt :
- Typen (trait) , und sind für heap-allocierte Box‹dyn FnOnce›, Box‹dyn FnMut› und Box‹dyn Fn›;
- Hinzugefügt Umwandlung von Closures in unsichere Funktionszeiger (unsafe fn);
- Die Möglichkeit, das Makro „dbg!“ ohne Argumente aufzurufen, um den Dateinamen und die Zeilennummer in stderr anzuzeigen, ohne die Variable zu inspizieren, was für das Debuggen von Bedingungsausdrücken nützlich ist;
- In die Typen für Gleitkommazahlen f32 und f64 wurde die Methode „“ hinzugefügt, um das Vorzeichen von einer Zahl auf eine andere zu kopieren;
- In den Typen Range* wurde die Methode „“ hinzugefügt, die es ermöglicht, zu überprüfen, ob ein angegebenes Wert im Bereich liegt;
- Es wurde die Methode , die es erlauben, den ausgeliehenen Wert von RefCell für verschiedene Komponenten ausgeliehener Daten zu reflektieren und zu teilen;
- Es wurde die Methode zum Ersetzen des aktuellen Werts von RefCell und Rückgabe des alten Werts als Ergebnis;
- Es wurde die Methode für das Hashing eines Zeigers oder einer Referenz auf die Adresse, aber nicht auf den angesprochenen Wert;
- Es wurde die Methode zum Kopieren des Inhalts von Option‹&T› oder Option‹&mut T›;
- Eine neue Charge von APIs wurde als stabil eingestuft, darunter wurden die Methoden stabilisiert
f32::copysign,
f64::copysign,
RefCell::replace_with,
RefCell::map_split,
ptr::hash,
Range::contains,
RangeFrom::contains,
RangeTo::contains,
RangeInclusive::contains,
RangeToInclusive::contains und
Option::copied; - Im Clippy (Linter) wurde die Überprüfung drop_bounds hinzugefügt, die bei der Hinzufügung der Bindung „T: Drop“ zu einer Funktion ausgelöst wird;
- Der Compiler unterstützt jetzt das neue Zielplattform
wasm32-unknown-wasi (Schnittstelle für die Nutzung von WebAssembly außerhalb des Browsers) wurde hinzugefügt; - Das Rust-Tooling wurde für Distributionen auf Basis der Musl-Standard-C-Bibliothek angepasst.
Quelle: opennet.ru
