A64m
будет все на плюсах писать
Leonid 🦇
пойду обратно в спецэффектеры-рендерильщики
Leonid 🦇
за 9 лет ничего не забыл поди
Евгений
Хм, у меня ghc по OOM валится при компиляции. Можно сказать ему не так активно кушать память?
Alexander
-M10G ?
Alexander
+ -j1
Евгений
> 10G :(
Евгений
Где я столько достану?
Dmitry
-O0 ?
Alexander
ну поставь меньше, я специально констранту большую написал
Alexander
и выкинуть ether
Anatolii
я нидавно телеграм бота какого-то собирал стаком
Anatolii
так там 32гб было впритык
Anatolii
но там правда issue была по этому поводу
Alexander
в 1 поток норм может быть
Евгений
Ну у меня telegram-api выжрал 8 гигабайт и упал
A64m
так это не в один поток сибирали небось
Alexander
стек слегка увеличивает требования
Alexander
в 1 поток делать будет норм
Евгений
Alexander
самому ghc RTSOPTS="-M10G" в env
Alexander
если он с поддержкой опций
Alexander
но лучше в 1 тред собирать
Евгений
Собираю в один тред, сожрало уже 6.5 гигов :(
Евгений
Ща упадёт
Anatolii
а какой пакет?
Евгений
telegram-api
Евгений
Зря я связался с сервантом
Pavel
а если сравнивать в среднем по палате хаскель приложение и +- среднее java приложение. хаскель так же прожорлив в плане потребления памяти или все же более умеренный ?
Anatolii
telegram-api
вот на нем у меня выжирало все что можно
Anatolii
https://github.com/klappvisor/haskell-telegram-api/issues/108
Anatolii
вот эта issue
Евгений
Странно, локально на десктопе у меня тоже 8 гигов и оно выжило
Anatolii
там fizruk даже обьяснил почему все так плохо
Евгений
Но на десктопе у меня то ли 6, то ли 8 ядер
Евгений
"Я не смог скомпилять либу, поэтому написал свою"
Евгений
Это пять :(
A64m
написал свою на го
Leonid 🦇
Ну слава богу хоть swagger-pandoc пашет
undefined
telegram-api никто собрать не может, начиная с версии 0.7
https://matrix.hackage.haskell.org/package/telegram-api
Хотя, можно конечно и ghc-8.0.2 использовать
A64m
там же адовые сервант-гусеницы, конечно?
Евгений
Евгений
Самое смешное, что на десктопе у меня собирается. Мистика
Dmitry
а с какой оптимизацией компилируется? -O0 не помогает?
A64m
там же тайпчек, наверное, взрывается, тут O0 не поможет
Dmitry
мне помогало
Dmitry
Я сам поражался. Не с telegram-api
Dmitry
попробовать недолго
A64m
не, ну понятно что бывают случаи когда оптимизатор память жрет
Alexander
servant!
undefined
там же адовые сервант-гусеницы, конечно?
Нет, там небольшой файлик с кучей toJSON = genricToJSON
https://github.com/klappvisor/haskell-telegram-api/blob/master/src/Web/Telegram/API/Bot/Data.hs
Dmitry
у меня тоже сплошной тайпчек и generics был . И почему-то помогало.
A64m
а, дженерики
undefined
а stack build --fast помогает, да
Евгений
А что делает —fast?
A64m
инстансы для эсона лучше ТХ выводить
Dmitry
думаю, что O0 и делает
undefined
Да, это -O0, только по-стэковски
A64m
ну и все рекорды в один файл пихать не нужно
Leonid 🦇
мало того что дженерики, еще и без toEncoding
Dmitry
A64m
должно помочь
Ilya
Напомните ссылку на нормальный хугл.
Который знает про (&) в Data.Function, dropWhileEnd в Data.List и др.
IC
Почему все до сих пор любят сервант если это так больно?
A64m
тут сервант оказался не виноват
кана
Leonid 🦇
Вот уж где оно не нужно так это апишечки чужие
Евгений
Ну телеграм бот это не только клиент, но и веб-сервер
IC
Опять же это сервер под 3rd party протокол, где не нужна дистрибьюция и документация дублирующая официальную.
IC
Я понимаю сервант когда из одного описания сразу кучу всего генерит, что стык в стык должно использоваться, но вот так... Хайповато как-то.
Евгений
И что ты предлагаешь?
Leonid 🦇
я предлагаю на типах это всё описывать!
requestHuita :: MonadInternet m => HuitaArgs -> m HuitaResponse
Евгений
Мне снап нравился, когда я на продакшоне писал, но ща всё кроме серванта мертво.
Вон swagger-generator и тот servant генерит
A64m
ну написали бы его на каком-нибудь вреке, все равно бы все эти рекорды тормозили
A64m
или предлагается по эсоновским Value линзами елозить?
Leonid 🦇
Ну во-первых там огромный рекорд-сумма
Leonid 🦇
Для начала сделать отдельно сумму и отдельно поля