Die Veröffentlichung der Programmiersprache Rust 1.69

Die allgemein verwendbare Programmiersprache Rust 1.69, ursprĂŒnglich von Mozilla entwickelt und jetzt unter der Schirmherrschaft der unabhĂ€ngigen Non-Profit-Organisation Rust Foundation weiterentwickelt, wurde veröffentlicht. Die Sprache konzentriert sich auf die sichere Handhabung von Speicher und bietet Mittel zur Erreichung einer hohen ParallelitĂ€t bei der AusfĂŒhrung von Aufgaben, ohne auf einen Garbage Collector und Runtime (Runtime beschrĂ€nkt sich auf die grundlegende Initialisierung und die Wartung der Standardbibliothek) angewiesen zu sein.

Die Speicherverwaltungsmethoden in Rust befreien Entwickler von Fehlern beim Umgang mit Zeigern und schĂŒtzen vor Problemen, die durch die Programmierung auf niedriger Ebene entstehen, wie z.B. den Zugriff auf freigegebenen Speicher, Dereferenzierung von Nullzeigern, PufferĂŒberlĂ€ufe usw. Zur Verteilung von Bibliotheken, zur GewĂ€hrleistung des Builds und zum Management von AbhĂ€ngigkeiten wird der Paketmanager Cargo entwickelt. FĂŒr die Bereitstellung von Bibliotheken wird das Repository crates.io unterstĂŒtzt.

Die sichere Handhabung von Speicher in Rust wird wĂ€hrend der Kompilierung durch die ÜberprĂŒfung von Referenzen, das Verfolgen des Besitztums von Objekten, das Management der Lebensdauer von Objekten (Sichtbarkeitsbereiche) und die Bewertung der Korrektheit des Zugriffs auf den Speicher zur Laufzeit sichergestellt. Rust bietet außerdem Mechanismen zum Schutz vor ganzzahligen ÜberlĂ€ufen, erfordert die verpflichtende Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek effektiver, implementiert das Konzept der UnverĂ€nderlichkeit (immutable) von Referenzen und Variablen standardmĂ€ĂŸig und bietet eine starke statische Typisierung zur Minimierung logischer Fehler.

Hauptneuheiten:

  • Im Paketmanager Cargo wurde die Erkennung von Warnungen implementiert, die automatisch behoben werden können, sowie die Ausgabe entsprechender Empfehlungen, um ‘cargo fix’ oder ‘cargo clippy --fix’ auszufĂŒhren. warning: ungenutzter Import: ‘std::hash::Hash’ —> src/main.rs:1:5 | 1 | use std::hash::Hash; | ^^^^^^^^^^^^^^^ | = Hinweis: ‘#[warn(unused_imports)]’ standardmĂ€ĂŸig aktiv warning: ‘foo’ (bin «foo») erzeugte 1 Warnung (fĂŒhren Sie ‘cargo fix --bin «foo»’ aus, um 1 Vorschlag anzuwenden)
  • In Cargo wurde eine Empfehlung zur Verwendung des Befehls ‘cargo add’ beim Versuch, eine Bibliothek mit dem Befehl ‘cargo install’ zu installieren, hinzugefĂŒgt.
  • Um die Kompilierungszeit zu verkĂŒrzen, ist das EinfĂŒgen von Debugging-Informationen in den Build-Skripten standardmĂ€ĂŸig deaktiviert. Bei erfolgreichem Abschluss der Build-Skripte fĂŒhrt diese Änderung nicht zu sichtbaren Unterschieden, jedoch wird im Falle eines Fehlers der Dump mit einem RĂŒckverfolgungs-Trace weniger Informationen enthalten. Um das alte Verhalten wiederherzustellen, fĂŒgen Sie Folgendes in die Cargo.toml ein: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Eine neue Reihe von APIs wurde stabilisiert und in die stabile Version ĂŒberfĂŒhrt, einschließlich stabilisierter Methoden und Implementierungen von Traits:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Das „const“-Merkmal, das die Verwendung in jedem Kontext anstelle von Konstanten ermöglicht, wurde in den Funktionen angewendet:
    • SocketAddr::new
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::new
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::new
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Die Möglichkeit, die Flags true und false in den Compilerargumenten zu verwenden, wurde hinzugefĂŒgt.

Quelle: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster