ChatCrawlerпоиск по публичному Telegram Открыть приложение
H

Haskell

1 686 участников
20 августа 2026
D
Ilyaтекст ещё не в индексе
ну думаю как раз требовать боксить там где нужен рантайм полиморфизм было бы лучше, может даже тоглом включать такое поведение компилятора через отдельный экстеншен
I
рантаймность большинства такого полиморфизма получается только из того, что компилятор пытается сыкономить время на кодогенерации
I
ну куча времени в такой кодогенерации может породить сильно более компактный код чем рантаймовым полиморфизмом
Ilyaэто экстремально актуально для хаскеля
Мне кажется что в LLVM языках IR горадо ниже уровнем и меньше семантики знает, а потому должен гораздо больше работы выполнять в ходе кодогенерации и там это гораздо актуальнее. В Хаскеле же на моем опыте обычно раздувает стадию преобразования корки, а на ней очень много семантики остается и к этим стадиям преобразования легко подлезть через рулы, там много всего переписывается и стирается в первую очередь ради рантайм эврестик. Но я лишь догадки строю по тому как у меня несколько миллионов строк линзо-векторного кода компилируется под пол часа - явно там компилятор не о скорости своей работы думает. Рулы он вроде исполняет строго как ему сказали
D
Кролик, если не ошибаюсь, когда-то рассказывал, что в целом в ходе оптимизаций много ненужной метаинформации сохраняется при проходах, но ее в несколько подходов не смогли нормально подчистить
L
D
Ну и если бы либа для протобафа не была раздута линзами с векторами, то тоже быстрее было бы переписывать там все
У гхц куча всяких катофф значений когда он просто сдается. Естественно это для скорости компиляции сделано и последние лет двадцать их тюнят в сторону ускорения компиляции а не скорости кода обычно, хотя есть исключения для новых дженериков
I
Dima | No AI clubКролик, если не ошибаюсь, когда-то рассказывал, что в целом в ходе оптимизаций много ненужной метаинформации сохраняется при проходах, но ее в несколько подходов не смогли нормально подчистить
Сохраняется куча информации о типах для линтера корки, который никто кроме разработчиков компилятора не использует. И есть десятилетий долгострой по ее урезанию. Но это токо часть проблемы
D
IlyaУ гхц куча всяких катофф значений когда он просто сдается. Естественно это для скорости компиляции сделано и последние лет двадцать их тюнят в сторону ускорения компиляции а не скорости кода обычно, хотя есть исключения для новых дженериков
Спорить не буду, в кишках компилятора мало ковырялся и в основном только выхлопы корки ковырял. Надеюсь чаще эвристики коррелируют с неоднозначностью влияния на рантайм в лучшую сторону
Эти значения не в кишках компилятора это флаги которые часто нужно теребить когда дженерики используют и т. Д.
I
Теребить обычному программисту
IlyaЭти значения не в кишках компилятора это флаги которые часто нужно теребить когда дженерики используют и т. Д.
ну флажки стадий оптимизатора я немного теребил и обычно от их ослабления раздувало корку и рантайм только страдал, на компиляцию при этом вроде не особо сказывалось
делал это в своем КХ драйвере, где вся сериализация на дженериках поверх Get из binary
D
но вот при оптимизациях скорости компиляции в 9.4 у меня вроде как раз сломались какие-то оптимизации и рантайм пострадал в пару раз - как раз тогда пытался передергиванием флажков ткнуть пальцем в причину
Leonid 🦇 OnokhovЖуть какая
Ну к перфомансу все равно критичнее сериализация самих данных. Там же батчинг бай десинг и сами пакеты очень легкие по сравнению с батчами векторов, которые надо юзерам еще в строки транспонировать для удобства
D
Собственно там и сломалась что-то на сочетании рекурсии с транспонированием списков. Надо на указатели переделывать сериализацию векторов
Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог