Die Veröffentlichung der Programmiersprache Rust 1.55

Die Version 1.55 der Programmiersprache Rust wurde veröffentlicht. UrsprĂŒnglich von Mozilla entwickelt, wird sie mittlerweile von der unabhĂ€ngigen gemeinnĂŒtzigen Organisation Rust Foundation weiterentwickelt. Die Sprache legt einen Schwerpunkt auf sichere Speicherverwaltung, bietet automatisches Speicher-Management und ermöglicht eine hohe ParallelitĂ€t bei der AusfĂŒhrung von Aufgaben, ohne auf einen Garbage Collector oder eine umfangreiche Laufzeitumgebung angewiesen zu sein; die Laufzeit 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:

  • Im Paketmanager Cargo wurde die Möglichkeit implementiert, Duplikate von Fehlern und Warnungen, die wĂ€hrend des Builds auftreten, zu konsolidieren. Bei der AusfĂŒhrung von Befehlen wie «cargo test» und «cargo check —all-targets», die zu mehrfachen Builds des Pakets mit unterschiedlichen Parametern fĂŒhren, wird dem Benutzer jetzt eine Zusammenfassung ĂŒber das Auftreten eines wiederkehrenden Problems angezeigt, anstelle mehrerer identischer Warnungen bei der erneuten Kompilierung derselben Datei. $ cargo +1.55.0 check —all-targets ÜberprĂŒfung von foo v0.1.0 Warnung: Funktion wird nie verwendet: ‘foo’ —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = Hinweis: ‘#[warn(dead_code)]’ ist standardmĂ€ĂŸig aktiv Warnung: ‘foo’ (lib) generierte 1 Warnung Warnung: ‘foo’ (lib test) generierte 1 Warnung (1 Duplikat) Abgeschlossen dev [nicht optimiert + Debug-Info] Ziel(e) in 0.84s
  • Der Code zur Analyse von Gleitkommazahlen in der Standardbibliothek wurde auf einen schnelleren und genaueren Algorithmus von Eizel-Lemire umgestellt, dessen Anwendung einige zuvor beobachtete Probleme mit der Rundung und der Analyse von Zahlen mit einer sehr großen Anzahl von Ziffern gelöst hat.
  • Die Möglichkeit zur Angabe von offenen Bereichen in Vorlagen wurde stabilisiert („X..“ wird als Bereich interpretiert, der mit dem Wert X beginnt und am maximalen Wert des Ganzzahltyps endet): match x as u32 { 0 => println!(„null!“), 1.. => println!(„positive Zahl!“), }
  • Die Fehlerkategorien, die durch die Liste std::io::ErrorKind abgedeckt werden, wurden erweitert (klassifiziert Fehler in Kategorien wie NotFound und WouldBlock). FrĂŒher fielen Fehler, die nicht in die bestehenden Kategorien passten, in die Kategorie ErrorKind::Other, die auch fĂŒr Fehler im externen Code verwendet wurde. Jetzt wurde fĂŒr Fehler, die nicht in die bestehenden Kategorien passen, eine separate interne Kategorie ErrorKind::Uncategorized geschaffen, und die Kategorie ErrorKind::Other ist auf Fehler beschrĂ€nkt, die nicht in der Standardbibliothek auftreten (Funktionen der Standardbibliothek, die io::Error zurĂŒckgeben, verwenden nicht mehr die Kategorie ErrorKind::Other).
  • Eine neue Reihe von APIs wurde stabilisiert und in die stabile Version ĂŒberfĂŒhrt, einschließlich stabilisierter Methoden und Implementierungen von Traits:
    • Bound::cloned
    • Drain::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::write
    • array::map
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Das Attribut „const“, das die Verwendung in jedem Kontext statt von Konstanten definiert, wird in der Methode str::from_utf8_unchecked verwendet.
  • Die dritte UnterstĂŒtzungsstufe fĂŒr die Plattform powerpc64le-unknown-freebsd wurde implementiert. Diese Stufe bietet grundlegende UnterstĂŒtzung, jedoch ohne automatisierte Tests, Veröffentlichung offizieller Builds und ÜberprĂŒfung der Code-Kompilierung.

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