Size: a a a

2018 November 30

B

Bogdan in rust_offtopic
И вобще, под bare metall, без OS
источник

AZ

Alex Zhukovsky in rust_offtopic
Casual tears
Нельзя без ансейфа выделить неинициализированной памяти, даже если ты точно знаешь что ее потом Reader::read() затрёт.
можно
источник

AZ

Alex Zhukovsky in rust_offtopic
MaybeUninit в помощь
источник

λ

λоλторт in rust_offtopic
Casual tears
let mut buffer: Vec<u8> = Vec::with_capacity(4096); 
unsafe { buffer.set_len(4096); }
А в чём смысл данной операции? Ведь 4096 байт уже выделено в первой строчке.
источник

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
Внутри, под капотом, и хорошо продебаженый, и протестированый)
местами формально доказанный
источник

AZ

Alex Zhukovsky in rust_offtopic
ID:693357436
Так и не смог я смириться с мыслью, что под капотом у программы роется программист, а под капотом в коде у программиста есть еще какой-то черный ящик с надписью unsafe rust, куда программисту говорят "не лезь"
ансейф это не небезопасно
источник

B

Bogdan in rust_offtopic
Alex Zhukovsky
MaybeUninit в помощь
Хм, nightly
источник

B

Bogdan in rust_offtopic
А кто-то использует не nightly Rust?)))
источник

AZ

Alex Zhukovsky in rust_offtopic
смысл в том, что если сделать компилятоР, который ловит 100% проблем ты охуеешь в типах все описывать
источник

NK

ID:693357436 in rust_offtopic
А есть какой-нибудь формат попроще mp3? Хочу попрактиковаться в реализации декодеров, а у mp3 вроде не самый простой стандарт
источник

AZ

Alex Zhukovsky in rust_offtopic
поэтому делают компилятор в 100 раз проще, который ловит 99% проблем, и с которым можно жить
источник

AZ

Alex Zhukovsky in rust_offtopic
ID:693357436
А есть какой-нибудь формат попроще mp3? Хочу попрактиковаться в реализации декодеров, а у mp3 вроде не самый простой стандарт
wav
источник

Ct

Casual tears in rust_offtopic
λоλторт
А в чём смысл данной операции? Ведь 4096 байт уже выделено в первой строчке.
Выделено, да. Но при обращении к buffer[i] ты получишь панику
источник

λ

λоλторт in rust_offtopic
Casual tears
Выделено, да. Но при обращении к buffer[i] ты получишь панику
так туда же писать надо, а не читать
источник

λ

λоλторт in rust_offtopic
push(...)
источник

λ

λоλторт in rust_offtopic
extend_from_slice
источник

Ct

Casual tears in rust_offtopic
А теперь представь что писать тебе с конца надо
источник

λ

λоλторт in rust_offtopic
Ну ок
источник

Ct

Casual tears in rust_offtopic
Эти 2 функции к тому-же лишние бранчи создают
источник

AZ

Alex Zhukovsky in rust_offtopic
into_boxed_slice кстати иногда помогает
источник