In jedem fünften Paket wird im Rust-Sprachmodus unsafe verwendet

Die Rust Foundation hat eine Statistik veröffentlicht, gemäß der mehr als 24.000 (19,11%) von 127.000 bedeutenden Paketen im Katalog crates.io das Schlüsselwort „unsafe“ verwenden, um Funktionen zu aktivieren, die unsichere Arbeit mit dem Speicher in bestimmten Codeblöcken ermöglichen, wie das Dereferenzieren von Zeigern, den Aufruf externer Funktionen oder die Änderung statischer Variablen. 34,35% der Pakete führen direkte Aufrufe von Funktionen aus anderen Crate-Paketen aus, die den „unsafe“-Modus verwenden.

Es wird festgestellt, dass in den meisten Fällen die Verwendung des „unsafe“-Modus durch den Aufruf von Code, der in anderen Sprachen geschrieben wurde, oder den Zugriff auf Bibliotheken in C/C++ bedingt ist. Das Paket mit den meisten Aufrufen im „unsafe“-Modus ist das von Microsoft entwickelte Crate-Paket windows, das eine Schnittstelle zum Windows API darstellt. Dieses Paket verzeichnet 36 Millionen Downloads. Unsafe wird auch in den beliebtesten Paketen syn (470 Millionen Downloads), proc-macro2 (354 Millionen Downloads) und libc (345 Millionen Downloads) verwendet.

Um Probleme im Code, der im „unsafe“-Modus ausgeführt wird, zu identifizieren, wird das Projekt Miri entwickelt, ein Interpreter, der in der Lage ist, Zugriffe außerhalb der Puffergrenzen, die Verwendung von Speicher nach dessen Freigabe, die falsche Verwendung von nicht initialisierten Daten, Verstöße gegen die Invarianz grundlegender Typen (zum Beispiel bool-Werte, die von 0 oder 1 abweichen), Verstöße gegen die Eigentumsregeln von Objekten, das Entstehen von Race Conditions und Speicherlecks zu erkennen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4