分解物質
потому что эмоджи четырехбайтные?
ты путаешь. это закодированые в utf-8 юникодовские emoji будут длинной 4 байта
Alex
потому что погромисты кодят под реальное железо
Anonymous
Процессор не работает с 3-байтовыми числами :)
то есть либо скорость либо меньшее использование памяти?
Cuno
Никто ошибки типа undefined reference to <some_std_function> при lto = true в profile.release не ловил? Без LTO при этом компилится нормально.
分解物質
24 бита тоже округление вверх
бинарные компьютеры оперируют размерами в степенях двойки
Alex
то есть либо скорость либо меньшее использование памяти?
этот выбор есть у производителей процессоров, не у тебя.
Cuno
угу
Alex
не юзай.
Cuno
но... как же... impl Trait
Loo
азжхпиж\ототьло
Alex
но... как же... impl Trait
значит LTO тебе не так уж и нужен
Anonymous
лоол
Cuno
Я бы не сказал. Оптимизации бывают "не нужными" только в C++ коде с UB.
Alex
либо собственное удобство, либо скорость бинаря. Пока не выйдет стейбл.
Cuno
Почему я, собственно, должен выбирать? LTO официально под найтли не работает или что?
Alex
Почему я, собственно, должен выбирать? LTO официально под найтли не работает или что?
он может как работать так и сломаться с новыми фичами, пили баг
Alex
только пока баг не починят - у тебя будет геморой )
Oleg
Что за LTO?
Alex
LinkTimeOptimization
Cuno
либо собственное удобство, либо скорость бинаря. Пока не выйдет стейбл.
Никакого удобства. И то, и другое - для перфоманса. Impl Trait позволяет избегать аллокаций и виртуальных вызовов.
分解物質
объясни, не понимаю.
unicode — стандарт который присваевает каждому симолу _номер_ . utf-8 — стандарт как небольшие цифры закодировать в немного байт а большие в больше байт, расположить их подряд и непутаясь раскодировать обратно, чтобы сохранить место
Alex
Что за LTO?
Судя по всему оно http://llvm.org/docs/LinkTimeOptimization.html
Alex
лан лан я так шучу, я даже не джун в расте
Cuno
Отличная логика.
Alex
ну ты хотел оптимизаций )
Alex
Не, серьезно посмотри есть ли issue и способы обхода.
Alex
если нет - создай свою. Тогда баг заметят и может исправят. Может еще и способ обхода предложат.
Cuno
https://github.com/rust-lang/rust/issues/42439 Workaround: выключить икрементальную компиляцию для LTO билдов.
Anonymous
чего
самый большой code point требует 21 бит
Anonymous
0x10FFFF
Anonymous
char = 32 бита
Berkus
да, потому что нет ни одной вменяемой архитектуры где char был бы 21 бит, а стандарт юникода могут и расширить - и в какой-то момент будет нужно 22 бита или 23
Berkus
вопрос то в чем?
Berkus
> архитектуры где char был бы 21 бит что
ну всякие dsp не считаем вменяемыми
Berkus
они для особых нужд обычно
分解物質
ты путаешь Rust char и C char
Berkus
не путаю
Berkus
ты путаешь Rust char и C char
давай перефразирую, "нет ни одной вменямой реализации Rust где char был бы 21 бит" так лучше?
分解物質
да
Berkus
но это все идет от архитектуры процессоров все равно, раст же эффективный езыг
Berkus
ну *shrug*
分解物質
分解物質
а не, это неправильное сравнение, x86_64 abi заставляет его каждый элемент массива возвращять в отдельном регистре, отсюда и сложности
分解物質
Berkus
и-и что?
Что твое предложение про биты не имеет смысла. Архитектурно или 16 бит или 32. Посередине ничего нет.
Anonymous
32 - 8 = 24
Berkus
Ты забыл про выравнивание
Anonymous
ага
Berkus
Если у тебя нет жестоких ограничений по памяти 24 бита дадут тебе жестокие тормоза из-за невыровненного доступа.
Anonymous
спасибо за то что повторил других
分解物質
а почему так будет?
это изза внутреннего устройства процессора, ему проще обращятся по адресам которые кратны размеру запрашиваевых данных к слову некоторые архитектуры вообще не могут в невыровненный доступ
Filipp
Наконец-то нормальный спор, который должен быть в этом чате
Loo
бле
Loo
что за времена настали
Loo
os-prober не видит раздела с виндой
Loo
тёмные времена
Alex
ой да ладно
Alex
венда всегда делает свои велосипеды
պլհկ
http://abstrusegoose.com/483
Alex
Vladimir
http://abstrusegoose.com/483
Жызнь боль(
Vladimir
Хорошо, что в расте смартпоинтеры в compile-time
Маjко
Да ну?
Маjко
Только Box же
Маjко
Остальные в рантайме
պլհկ
Че