Release der Programmiersprache Rust 1.35

Es fand Release der Systemprogrammiersprache Rust 1.35, 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 Cargo, 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 crates.io.

Haupt Neuheiten:

  • Typen (trait) FnOnce, FnMut und Fn sind für heap-allocierte Boxed-Typen Box‹dyn FnOnce›, Box‹dyn FnMut› und Box‹dyn Fn›;
  • Hinzugefügt die Möglichkeit 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 „copysign“ hinzugefügt, um das Vorzeichen von einer Zahl auf eine andere zu kopieren;
  • In den Typen Range* wurde die Methode „contains“ hinzugefügt, die es ermöglicht, zu überprüfen, ob ein angegebenes Wert im Bereich liegt;
  • Es wurde die Methode Ref:Cell:map_split, die es erlauben, den ausgeliehenen Wert von RefCell für verschiedene Komponenten ausgeliehener Daten zu reflektieren und zu teilen;
  • Es wurde die Methode RefCell::replace_with zum Ersetzen des aktuellen Werts von RefCell und Rückgabe des alten Werts als Ergebnis;
  • Es wurde die Methode ptr::hash für das Hashing eines Zeigers oder einer Referenz auf die Adresse, aber nicht auf den angesprochenen Wert;
  • Es wurde die Methode Option::copied 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 WASI 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

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster