NC
там, я думаю, особо для повышения скорости компиляции не сделать ничего
отрицательный результат исследования тоже результат
Vladislav
я вообще подумывал на что-то такое вакансию запилить
Надо срочно пойти в GHC internals разобраться получше, похоже.
Denis
в одном симплифаере только ад и израиль
Vladislav
Фиксить GHC это работа мечты, на самом деле, можно ведь своими же фиксами в следующем релизе и пользоваться
A64m
ГХЦ это такое адище, что насчет работы мечты я сильно сомневаюсь
Denis
откуда такая уверенность?
из багов с симплификатором как минимум
Vladislav
Да там прикольно, я читал исходники.
Vladislav
То есть там нельзя сказать, что хороший или понятный код, или к поддержке пригодный. Вот "прикольно" правильное слово.
Vladislav
Заходишь туда как в цирк и развлекаешься, а там еще эти [NOTE]
Vladislav
которые объясняют, почему тот или иной трюк смешной
Denis
я бы сказал что исходники GHC это очень нишевое чтиво
Vladislav
Там очень много вещей сделано криво, потому что надо research реализовывать поскорее и ship it
Denis
не понял
Ну там то коэрсы взрываются экспоненциально, то реврайты. Думаю что если только откровенные баги починить, то скорости компиляции пойдет строго в плюс.
NC
Дык поэтому оплачиваемый человек, который это всё вычищает, очень актуальный
Vladislav
А потом практические юз-кейсы вылезают и надо всё подпирать костылями
Vladislav
> Думаю что если только откровенные баги починить, то скорости компиляции пойдет строго в плюс. Я только что выше написал, что починка major бага, который я репортил, ухудшает производительность троекратно.
Vladislav
wishful thinking про то, что корректность и перформанс идут нога в ногу
Vladislav
чтобы решение было корректным, о нем нужно рассуждать легко, а это обычно верно для тривиальных и непроизводительных алгоритмов
Vladislav
ну Эйзенберг его сделал, а сейчас его в Well-Typed передали переделывать
Denis
очевидимо, что если не делать ненужной работы, то медленнее вряд ли станет
Vladislav
ну это ты потребление памяти сокращаешь, а так-то coercions нужны в основном для -dcore-lint, и нет разницы, что они большие
Denis
в общем я готов на такую вакансию, пинайте после нг
A64m
если что-то гдето по памяти/времени взрывается, это не значит, что где-то "очевидный баг", там многое имеет сложность такую, но просто предполагается что для обычных кейсов работает (если повезет) более-менее за разумное время/память
Vladislav
в общем я готов на такую вакансию, пинайте после нг
Вакансия подразумевает время на разгон (поразбираться в GHC), или ты хочешь найти кого-то, кто сразу херачить пойдет?
Vladislav
Потому что я пытался в GHC контрибьютить и это мрак
Vladislav
В этом чате найдешь может пару человек способных, но я их не знаю
Denis
Потому что я пытался в GHC контрибьютить и это мрак
я тоже пытался, так себе развлечение(как по мне, некоторым нравится)
A64m
взрывающееся кейсы там зарание известно что есть, и они тривиально конструируются (какой-нибудь id id id id id id id id id id id)
Denis
нам с одним багом повезло, там резко прибежал SPJ, починил и быстро все вмерджили
Андрей
ребят, кто сказал, что у методов должна быть одна точка входа и одна точка выхода?
A64m
вообще точек выхода быть не должно. Сейчас же 2017, а не 1977
Андрей
ну чо ты вот начинаешь
Ignat
tfw пишешь на С и не понимаешь, смеяться или не вестись на толстоту
Kirill
pointfree же
Aleksei (astynax)
Поинтфри, это функциональная многоножка!
Андрей
сослался на https://habrahabr.ru/post/40841/ , надеюсь тимлид поймёт )
Cheese
а, вы про императивщину
Leonid 🦇
заточка выхода
Андрей
вооот, а теперь мне нужно сослаться на какое-то чтиво, где поясняется, что определённость поведения кода - это хорошо
Зигохистоморфный
нашел новую книгу для прочтения) кто любит мат чтиво - могу сюда кинуть
A64m
вообще после доведения до терпимого состояния тайплевел фич и оптимизатора можно ожидать, что ghc будет компилировать в 10-100 раз медленнее, чем теперь, советую уже готовиться к этому
A64m
А что должно быть вместо них?
вызовы других функций, очевидно же
Aliester
O0
A64m
быстро компилируют только компиляторы, которые ничего не делают
Aliester
и пошел
A64m
да этого мало, есть и кроме оптимизатора чему тормозить
NC
Чтож на O0 оно так тормозит то
A64m
тайпчекер тормозит
NC
Кстати, реально перевести в норм JIT тайплевел?
A64m
ну или даже не тайпчекер, а деланье того что можно было бы тайпчекнуть, но мы это не тайпчекаем, только когда компилятор дебажим
A64m
Кстати, реально перевести в норм JIT тайплевел?
не знаю, вот ТХ точно можно на порядки ускорить
NC
А ведь это ускорит сборку в два раза минимум
A64m
А ведь это ускорит сборку в два раза минимум
в гхц будущего доля ТХ будет меньше чем сейчас, так что не факт что в это разумно труд вкладывать
Зигохистоморфный
NC
Я ещё не видел тайплевела, который мне нормально линзы и aeson инстансы будет дерайвить
A64m
на чем основано мнение?
1) больше всего можно на тайплевеле сделать будет 2) тайплевел станет намного тормознее, а ТХ - нет
Aliester
в разные дни
и как это относится к заангажированости в сторону респов?
Зигохистоморфный
@A64m_qb0 вопросик про oneShot из GHC.Magic можешь пояснить его область применимости?
A64m
@A64m_qb0 вопросик про oneShot из GHC.Magic можешь пояснить его область применимости?
это подсказка для компилятора для писателей всяких континьюэйшон-хеви библиотек.
Aliester
да
Aliester
но там деталь
Зигохистоморфный
A64m
не знаю, насчет легко
Anonymous
спасибо
Anonymous
но там деталь
да, они написали, что ркспубликанцы голосуют в день выборов
Anonymous
а демократы в день, когда выборов нет