Aleksei (astynax)
Но точно не Data.Text.Lazy.pack :)
Aleksei (astynax)
А ещё я стекофаг, не умею в nix и new-cabal, приемлю hpack
Leonid 🦇
я вот тоже за FT но против писание библиотек "под новичков"
Aleksei (astynax)
илитизм приуменьшают?
A64m
Да просто опытный хаскелист не имеет никакого представления о том, что лучше новичку, придумывает какое-то адище и продвигает его потом под лозугнгом ПОДУМОЙТЕ О ДЕТЯХ!11!
Dmitry
тут админы-то еще остались, после всех этих демаршей?
A64m
как минимум @icrbow еще
IC
Что? Где? Кого забанить?
Anatolii
А ещё я стекофаг, не умею в nix и new-cabal, приемлю hpack
я уже ушел от стэка и плотно сижу на никсе, но от hpack пока не отказался:)
Anatolii
и кастомные прелюды люблю без частичных функций
A64m
еще не ушел со стека, но планирую
Leonid 🦇
я и не заходил на стек
A64m
думаю, после того как hie будет с нью-билдом работать, плюсов стека для меня уже не останется
Aleksei (astynax)
я тоже планирую new-build потыкать как-нить. Но стек меня пока вполне удовлетворяет.
Dmitry
я тоже планирую new-build потыкать как-нить. Но стек меня пока вполне удовлетворяет.
Как вы на stack'е распараллеливаете сборку? У меня такое впечатление, что старый cabal это лучше делал
Aleksei (astynax)
Не распараллеливаю
Dmitry
Запускаешь cabal build и все процессоры сразу заняты
Dmitry
А почему?
Aleksei (astynax)
Я больше в RAM упираюсь и в IO (у мну HDD в ноуте)
Dmitry
А как сказать stack'у, чтобы он больше RAMы использовал?
Dmitry
Есть в этом смысл?
Aleksei (astynax)
GHC и так использует всё, что есть
Aleksei (astynax)
Чем превращает мой комп в тыкву периодически
Dmitry
Дык есть же nice и ionice
Dmitry
Ну и zswap :)
Aleksei (astynax)
Проблема не в загрузке ядер. Я поку сказать -j1 и будет одно ядро. Проблема в том, что GHC периодически вытесняет в подкачку всё кроме себя. А подкачка на HDD
Aleksei (astynax)
В итоге если я сделаю clean + build нашего проекта, то можно смело чай идти пить - комп будет неотзывчивым известное кол-во минут.
Dmitry
Ну понятно.
Dmitry
Почему так много памяти требуется?
Aleksei (astynax)
Потому что GHC - прожорливый?
Aleksei (astynax)
На самом деле это код проекта такой: генерики, TH, и т.п.
Dmitry
Ну, просто в живую не видел проектов, которые бы прям всю память выедали.
Dmitry
А, ок.
Andrei
В итоге если я сделаю clean + build нашего проекта, то можно смело чай идти пить - комп будет неотзывчивым известное кол-во минут.
чтобы полечить неотзывчивость, ака bug #12309, достаточно сказать scsi_mod.use_blk_mq=1 ядру и echo 'bfq' > /sys/block/sdX/queue/scheduler
Andrei
чтобы полечить неотзывчивость, ака bug #12309, достаточно сказать scsi_mod.use_blk_mq=1 ядру и echo 'bfq' > /sys/block/sdX/queue/scheduler
последнее автоматизируется файликом а-ля https://build.opensuse.org/package/view_file/Base:System/systemd/60-io-scheduler.rules?expand=1 в /etc/udev/rules.d
Leonid 🦇
В итоге если я сделаю clean + build нашего проекта, то можно смело чай идти пить - комп будет неотзывчивым известное кол-во минут.
Вот вместо гаджетов и соносолей взял бы себе помощнее машину для работы. У вас москвичей же зарплаты конские
Dmitry
А как тогда страдать?
A64m
переходить на раст
Leonid 🦇
/me набросил токсичности
Leonid 🦇
переходить на раст
rustc тоже жрёт память и тормозит
Dmitry
это хорошо
Dmitry
А просто памяти докупить?
A64m
rustc тоже жрёт память и тормозит
еще больше даже, но это был ответ на вопрос как продолжить страдать с нормальной машиной
Aleksei (astynax)
С собой таскать неудобно :)
Leonid 🦇
Пора остепениться
Leonid 🦇
Не молодежь уже
A64m
таскать легкий, заходить с него на нормальный
Dmitry
Так а памяти докупить не вариант? И sdd поставить?
Aleksei (astynax)
Собираюсь это и сделать
Dmitry
👍
A64m
вроде у ноутбуков которые удобно таскать и так ссд
Dmitry
Так, похоже, Евгений таки отправит видеосообщение...
Aleksei (astynax)
вроде у ноутбуков которые удобно таскать и так ссд
У мну ноут старый довольно. Когда я покупал, у мну юыли варианты "SSD + плохой экран" или "HDD + хороший экран"
Leonid 🦇
Теперь это blah
Leonid 🦇
Там хаскель тут ноутбуки
IC
Эти хаскелисты совсем на тайпсеттинге поехали...
Leonid 🦇
эээ! я не фронтендер
Сорян, данные устарели
NC
Эти хаскелисты совсем на тайпсеттинге поехали...
Хотят тайплевел трекинг исключений сделать?
Cheese
Хотят тайплевел трекинг исключений сделать?
чёрт. сначала прочитал как "хайплевел трейнинг"
NC
Если и это можно сделать на type level sets, то надо делать
IC
Плагинчики должны хорошо заходить для переноса доказательств после экстракции
IC
А не как сейчас, unsafeCoerceEverything
NC
Это то, что поисходит, когда coq просишь в хаскелль код нагенерить?
IC
Ага
IC
Целиком туда coq засовывать конечно так себе, но некоторые аксиомки всё же можно наверно.
A64m
в каком смысле переноса? плагин просто вставляет свои коэрсии - тут все доказано плагином - вместо ансейфКоэрс же
A64m
ну и для экстракции из кока или там для малонсы плагин вроде не применить, по крайней мере не через жопу
Andrei
А это откуда слайд?
предположу, что с haskellX
Dmitrii
предположу, что с haskellX
Интересно, кто докладчик 🙂
IC
А это откуда слайд?
Writing typechecker plugins, Gabe Dijkstra
Dmitrii
Writing typechecker plugins, Gabe Dijkstra
Интересно. А то в ИТМО в этом году как раз одна студентка под руководством меня и @int_index писал бакалаврскую по теме реализации множеств типов в GHC. Видимо, в итоге в GHC пойдет работа другого человека...
IC
Это демка была и там полно "это основы, дальше надо ещё 80% написать".
Dmitrii
Вы как плагин писали, как патч или как библиотеку?
Патч прямо в GHC. В процессе реализации выяснилось, что как плагин не сделать нормально