U svakoj petoj paketu na jeziku Rust koristi se neodređeni način

Organizacija Rust Foundation objavila je statistiku prema kojoj od 127 tisuća značajnih paketa predstavljenih u katalogu crates.io, više od 24 tisuće (19,11%) koristi ključnu riječ "unsafe" za uključivanje funkcionalnosti koje omogućavaju nesigurno rukovanje memorijom u određenim blokovima koda, poput dereferenciranja pokazivača, poziva vanjskih funkcija ili izmjene statičnih varijabli. 34,35% paketa vrši izravne pozive funkcija iz drugih crate-paketa u kojima se koristi režim "unsafe".

Primjećuje se da je u većini slučajeva korištenje režima "unsafe" posljedica poziva koda napisanog na drugim jezicima ili pristupa bibliotekama na C/C++. Paket s najvećim brojem poziva u režimu "unsafe" je crate-paket windows koji razvija tvrtka Microsoft, a koji je omot oko API-ja platforms Windows. Ovaj paket ima 36 milijuna preuzimanja. Unsafe se također koristi u najpopularnijim paketima syn (470 milijuna preuzimanja), proc-macro2 (354 milijuna preuzimanja) i libc (345 milijuna preuzimanja).

Za otkrivanje problema u kodu koji se izvršava u režimu "unsafe", projekt razvija interpreter Miri koji omogućuje određivanje pristupa izvan granica buffera, korištenje memorije nakon što je oslobođena, nepravilno korištenje neinicijaliziranih podataka, kršenje invarijantnosti osnovnih tipova (na primjer, nesukladnost bool s hodnotama 0 ili 1), kršenje pravila vlasništva nad objektima, pojavu stanja utrke i curenja memorije.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster