Rust
8.21K subscribers
418 photos
39 videos
3 files
964 links
Rust programming language

По всем вопросам- @textfaster

#VRHSZ
Download Telegram
👣 Твой код на Rust компилируется, проходит тесты и является UB. Ты просто об этом не знаешь

Если взять случайный крейт с crates.io, поставить на него Miri и подождать минут пять, шанс увидеть красное сообщение про undefined behavior где-то в зависимостях стремится к единице. Чаще всего виноват не автор хитрого unsafe-блока ради скорости, а вполне обычная библиотека, которой пять лет, у которой звёзд на гитхабе больше, чем у твоего пет-проекта строчек кода, и которая всё это время спокойно лежит в продакшене.

Самое неприятное в этой истории то, что компилятор ничего не скажет. Тесты пройдут. Бенчмарки покажут красивые наносекунды. А потом LLVM 19 обновится до LLVM 20, поменяет один проход оптимизации, и твой сервис начнёт ронять прод по понедельникам. Чтобы понять, почему так происходит, придётся залезть в три темы, которые в обычной жизни Rust-разработчика не встречаются: pointer provenance, Stacked Borrows и пришедшую им на смену Tree Borrows.

https://uproger.com/tvoj-kod-na-rust-kompiliruetsya-prohodit-testy-i-yavlyaetsya-ub-ty-prosto-ob-etom-ne-znaesh/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰2💯2