Bun на Rust ловят на UB: Safe Rust, который падает на miri
В issue репозитория Oven SH обсуждают Rust-переписку Bun и то, что код не проходит базовые проверки miri. Автор треда показывает, что даже в «безопасном» Rust там есть возможность для undefined behavior — то есть история про скорость уже с привкусом «а кто это вообще ревьюил?».
error: Undefined Behavior: создание недопустимого значения типа &[u8]: обнаружена висячая ссылка (0x20933[noalloc] не имеет provenance)
--> src/main.rs:97:18
|
97 | unsafe { core::slice::from_raw_parts(ptr as *const u8, self.len()) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Undefined Behavior произошло здесь
|
= help: это указывает на баг в программе: она выполнила недопустимую операцию и вызвала Undefined Behavior
= help: см. https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html для дополнительной информации
= note: stack backtrace:
0: PathString::slice
at src/main.rs:97:18: 97:75
1: main
at src/main.rs:130:22: 130:34
code:
fn main() {
let test = Box::new(*b"Hello World");
let init = PathString::init(&*test);
drop(test);
println!("{:?}", init.slice());
}
Пожалуйста, подумайте о том, чтобы не заниматься vibe coding на Rust, потому что ИИ не очень хорошо пишут на Rust, и, пожалуйста, наймите настоящего Rust-разработчика