Veröffentlichung der Programmiersprache Rust 1.52

Die Veröffentlichungsankündigung der Programmiersprache Rust 1.52 wurde veröffentlicht. Diese, ursprünglich von Mozilla ins Leben gerufene Sprache, wird mittlerweile von der unabhängigen, gemeinnützigen Organisation Rust Foundation weiterentwickelt. Rust legt den Schwerpunkt auf sichere Speichermanagement-Techniken, bietet automatisches Speichermanagement und stellt Werkzeuge für hohe Parallelität zur Verfügung, ohne einen Garbage Collector oder eine umfangreiche Runtime zu benötigen (die Runtime beschränkt sich auf die grundlegende Initialisierung und die Unterstützung der Standardbibliothek).

Das automatische Speichermanagement in Rust befreit Entwickler von Fehlern beim Umgang mit Zeigern und schützt vor Problemen, die aus der niederen Speicherverwaltung entstehen, wie etwa dem Zugreifen auf Speicherbereiche nach deren Freigabe, dem Dereferenzieren von Nullzeigern, Pufferüberläufen usw. Zur Verbreitung von Bibliotheken, zur Gewährleistung des Builds und zur Verwaltung der Abhängigkeiten wird der Paketmanager Cargo entwickelt. Für die Bereitstellung von Bibliotheken wird das Repository crates.io unterstützt.

Hauptneuheiten:

  • Die Bindung an die Ausführungsreihenfolge der Befehle „cargo check“ und „cargo clippy“ wurde aufgehoben. Früher führte der Aufruf von „cargo clippy“ nach „cargo check“ nicht zur Ausführung des clippy-Tools (Linter), da es keine Trennung der Caches für diese beiden Prüfformen gab. Dieses Problem wurde nun behoben, sodass die Reihenfolge der Aufrufe von „cargo clippy“ und „cargo check“ nicht mehr relevant ist.
  • Eine neue Reihe von APIs wurde in den stabilen Bereich überführt. Darunter wurden die folgenden Methoden stabilisiert:
    • Arguments::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_once
  • Das Kennzeichen „const“, welches die Verwendung in jedem Kontext anstelle von Konstanten ermöglicht, wurde in den folgenden Methoden implementiert:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Eine lint-Prüfung für unsafe_op_in_unsafe_fn wurde hinzugefügt, um die Einbettung von unsafe-Code in unsafe-Funktionen zu identifizieren.
  • Es ist erlaubt, mutable-Zeiger auf Arrays in Zeiger auf den Typ der jeweiligen Array-Elemente umzuwandeln. let mut x: [usize; 2] = [0, 0]; let p = &mut x as *mut usize; let p = &mut x as *const usize;
  • In Clippy (Linter) wurden 9 neue Prüfungen hinzugefügt.
  • Im Paketmanager Cargo wurde die Unterstützung für das Feld „manifest_path“ im JSON für Pakete implementiert. Im Repository crates.io wurde die Angabe von Lizenzinformationen im SPDX 3.11-Format hinzugefügt.
  • Es ist erlaubt, mehrere Filter beim Ausführen von Tests anzugeben, zum Beispiel wird der Befehl „cargo test — foo bar“ alle Tests ausführen, die den Masken „foo“ und „bar“ entsprechen.
  • Das standardmäßige LLVM-Toolset wurde auf Version LLVM 12 aktualisiert.
  • Ein dritter Unterstützungslevel für die Plattformen s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl und powerpc-unknown-openbsd wurde implementiert. Der dritte Level bedeutet grundlegende Unterstützung, jedoch ohne automatisierte Tests, Veröffentlichung offizieller Builds und Überprüfung der Build-Möglichkeiten des Codes.

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