Veröffentlichung der Programmiersprache Rust 1.35

fand statt Veröffentlichung der Systemprogrammiersprache Rost 1.35, entwickelt vom Mozilla-Projekt. Die Sprache konzentriert sich auf die Speichersicherheit, bietet eine automatische Speicherverwaltung und bietet eine Möglichkeit, eine hohe Aufgabenparallelität zu erreichen, ohne einen Garbage Collector oder eine Laufzeit zu verwenden.

Die automatische Speicherverwaltung von Rust befreit den Entwickler von Zeigermanipulationen und schützt vor Problemen, die durch Speichermanipulation auf niedriger Ebene entstehen, wie z. B. After-Free-Speicherzugriffe, Nullzeiger-Dereferenzierungen, Pufferüberläufe und dergleichen. Es wird ein Paketmanager entwickelt, um Bibliotheken zu verteilen, die Assemblierung sicherzustellen und Abhängigkeiten durch das Projekt zu verwalten. Kastenwagen, wodurch Sie mit einem Klick auf die Bibliotheken zugreifen können, die Sie für das Programm benötigen. Ein Repository wird zum Hosten von Bibliotheken unterstützt Kisten.io.

Haupt- Innovationen:

  • Züge FnOnce, FnMut и Fn implementiert für Heap-Zuweisung Boxed-Typen Box‹dyn FnOnce›, Box‹dyn FnMut› und Box‹dyn Fn›;
  • Hinzugefügt von Gelegenheit Umwandeln von Abschlüssen in unsichere Funktionszeiger (unsafe fn);
  • Die Möglichkeit, das Makro „dbg!“ aufzurufen, wurde implementiert. ohne Argumente zum Anzeigen des Dateinamens und der Zeilennummer in stderr ohne Überprüfung der Variablen, was zum Debuggen der Funktionsweise bedingter Ausdrücke praktisch ist;
  • Methode „ zu den Gleitkommatypen f32 und f64 hinzugefügtCopysign» um ein Zeichen von einer Zahl in eine andere zu kopieren;
  • Methode hinzugefügt "enthält„Damit können Sie überprüfen, ob der angegebene Wert innerhalb des Bereichs liegt.
  • Methode hinzugefügt Ref:Cell:map_split, sodass Sie den geliehenen RefCell-Wert für verschiedene Komponenten der geliehenen Daten widerspiegeln und trennen können;
  • Methode hinzugefügt RefCell::replace_with um den aktuellen RefCell-Wert zu ersetzen und den alten Wert als Ergebnis zurückzugeben;
  • Methode hinzugefügt ptr::hash um einen Zeiger oder eine Referenz anhand einer Adresse und nicht anhand des adressierten Werts zu hashen;
  • Methode hinzugefügt Option::kopiert um den Inhalt der Optionen Option‹&T› oder Option‹&mut T› zu kopieren;
  • Ein neuer Teil der APIs wurde in die stabile Kategorie überführt, darunter auch stabilisierte Methoden
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Bereich::enthält,
    RangeFrom::contains,
    RangeTo::contains,
    RangeInclusive::contains,
    RangeToInclusive::contains und
    Option::kopiert;

  • Drop_bounds-Prüfung zu Clippy (Linter) hinzugefügt, die beim Hinzufügen einer „T: Drop“-Bindung zur Funktion ausgelöst wird;
  • Der Compiler hat Unterstützung für eine neue Zielplattform hinzugefügt
    wasm32-unknown-wasi (Schnittstelle WAR ICH um WebAssembly außerhalb des Browsers zu verwenden);

  • Das Rust-Toolkit ist für Distributionen angepasst, die auf der Standard-C-Bibliothek Musl basieren.

Source: opennet.ru

Kommentar hinzufügen