Alex
andrei
andrei
че как не нпм
adam
分解物質
分解物質
պլհկ
Спасибо оптимизатору за наше счастливое детство
Filipp
Мне показалось или я тут видел крутой стикер с растом?
Bugworm
Filipp
Screenshot (05:36PM, сент. 14, 2017)
Anonymous
Safort
Що це за дебагер асмовский?
Cuno
https://godbolt.org/
Safort
https://godbolt.org/
А, так это онлайн. Я просто ищу себе норм дебагер под линупс и уж было нормальному интерфейсу обрабовался.
պլհկ
https://github.com/cs01/gdbgui ))
adam
Сережа
Если ты про поддержку гдб в иде, то она есть в vs code. Native debugging расширение. gdb с 7.12 вроде бы официально поддерживает Rust. В Intellij плагин с растом поддерживает дебаггинг. Есть еще к Eclipse RustDT с поддержкой.
Safort
Пасиб, коданы.
分解物質
分解物質
очень странно
分解物質
а нет, не странно
分解物質
в первом случае весь массив передаётся одним регистром и rustc/llvm это оптимизирует в один bswap, когда данные передаёшь через указатель он их боится и не видит что можно приминить bswap. вот вам ваш fear of pointers
Marat
分解物質
分解物質
блин, у меня кнопка share не работает
Marat
Marat
с unsafe тоже не оптимизирует?
分解物質
Marat
А говно тогда
分解物質
Разве?
тут ownership/lifetimes вообще ни как не влияют
Vladimir
та да, косячный оптимизатор
Vladimir
кстати самое убогое выглядит
pub fn read_be4(c: &[u8]) -> u32 {
(c[0] as u32) << 24 | (c[1] as u32) << 16
| (c[2] as u32) << 8 | c[3] as u32
}
Vladimir
он вообще 4 прыжка
Vladimir
test rax, rax
je .LBB4_5
cmp rax, 1
je .LBB4_6
cmp rax, 3
jb .LBB4_7
je .LBB4_8
分解物質
они сократятся до одного если сначала брать c[3]
Vladimir
да, я про это же
分解物質
всё ради тачного места паники в бэктрейсе мда
Vladimir
жизнь боль
Vladimir
кстати с get_unchecked аналогичного * const что логично
分解物質
Alex
Vladimir
забавно что с копи типами, явно заставить соптимизировать компилятор не так то просто
например такое, генерирует код идентичный le1
pub fn read_le5(c: &[u8;4]) -> u32 {
let c:[u8;4] = *c;
read_le1(c)
}
а уже такое, внезапно, не понимает что от него хотят.
pub fn read_le5(c: &[u8;4]) -> u32 {
let c:[u8;4] = *c;
(c[3] as u32) << 24 | (c[2] as u32) << 16
| (c[1] as u32) << 8 | c[0] as u32
}
Safort
Трансляция митапчика https://www.youtube.com/watch?v=BCsPcsmRhOM
Sherzod
dukeBarman
Маjко
Сенкс
Anonymous
tfw забыл про митап
Anonymous
><
Мерль
Мерль
Anonymous
Anonymous
byteorder имеет много ненужных мне фич
Anonymous
намного проще просто написать у себя функцию
Мерль
byteorder имеет много ненужных мне фич
... которые тебе никак не мешают
Делай как хочешь, но пилить свой велосипед для решения проблемы, которая решена в std, увеличивая вероятность накосячить -- это прямо образец говнокода
Anonymous
в std?
Мерль
в std?
В стандартной библиотеке есть же готовый способ
Anonymous
где?
Мерль
Мерль
Или каком-то из под модулей?
Сек
Anonymous
🤔
Мерль
А нет, извиняюсь, это byteorder, а она не в std
Мерль
heck
Anonymous
ну так
Anonymous
я и говорю что мне не нравится тянуть либу для столь простой задачи
Мерль
Мерль
Чо уж там
Anonymous
здесь понятия "вероятность накосячить" и "костыли" неприменимы просто
Anonymous
мне кажется го оставил плохие последствия на твоем мозге
Anonymous
нет никакого goway
Anonymous
этот язык ничего не изобрел
分解物質
к слову rust тоже
уже всё было в Cyclone
Oleg
Дискриминация по языкам, дожили
Anonymous
Anonymous
судя по rust reference нет
分解物質
ок