SimpleX
Кстати, есть хорошие статьи на тему "как писать высокопроизводительный код"?
Alexander
Блог тиббе статьи лещинского
Alexander
Донса
Alexander
Они не очень много пишут сейчас правда
Alexander
Кстати статьи лещинского на icfp 2016 были
Alexander
Жалко вообще что он из ms research ушеш
Sergey Ufocoder
Всем привет, подскажет ли кто нибудь, в телеграмме есть канал по elm lang?😀
Evgeniy
Прбовал кто делать в стэке мультипроект?
blkmrkt
г-ди что же это за нафиг, как бесит! Откуда вообще такая ошибка может быть? Я вручную подправил cabal.yaml, как заставить stack поставить новые версии либ? В старой версии баг, он все ломает
blkmrkt
почему не получается поставить последнюю версию http-client?
blkmrkt
вот сюда я конкретные версии вписал
blkmrkt
https://github.com/snoyberg/http-client/issues/175 Вот тут это починили, но не могу понять как мне установить последнюю версию http-client уууууууу бесит!
Evgeniy
https://github.com/snoyberg/http-client/issues/175 Вот тут это починили, но не могу понять как мне установить последнюю версию http-client уууууууу бесит!
В stack.yaml в extra-deps пропиши нужную версию например: - http-dispatch-0.5.0.2 - encoding-0.8.1 а в cabal убери номер А снапшот поставвь например resolver: lts-6.23
blkmrkt
В stack.yaml в extra-deps пропиши нужную версию например: - http-dispatch-0.5.0.2 - encoding-0.8.1 а в cabal убери номер А снапшот поставвь например resolver: lts-6.23
а где можно почитать как stack с кабалом работают вместе? все статьи где попадается stack, датированы годом назад, и пишут что он еще сырой, в комментариях отговаривают от использования стака
blkmrkt
ок, а каким образом можно v0.5.3.3 вот этого пакета поставить?
blkmrkt
ок, а каким образом можно v0.5.3.3 вот этого пакета поставить?
хмм ок, не совсем понятно как с lts-7.6 поставилась версия 0.5.3.3, если тут у 7.6 указана более старая версия пакета, но проект собрался
blkmrkt
Почему если не указываешь версию пакета explicitly, ставится старая мажорная версия, зачастую устаревшая на 2 версии от той что на гитхабе? Можно ли как-то заставить стак ставить всегда последние версии?
blkmrkt
В stack.yaml прописал?
да все по совету. просто не понял почему stackage пишет версию пакета 0.4.31.1 рядом с LTS 7.6 на скриншоте, когда у меня спокойно поставилась версия 0.5.3.3 с этим же lts в stack.yaml
Evgeniy
В секции extra-deps указываются то чего нет в снапшоте
Evgeniy
stack.yaml specifies which packages to include из док
Vladimir
О, вот и для меня понятней стало, спасибо!
blkmrkt
В секции extra-deps указываются то чего нет в снапшоте
Во, писали б такое сразу в установщике стака или на главной
Evgeniy
Ну надо просто доку читать там почти всё написано https://docs.haskellstack.org/en/stable/GUIDE/#stackyaml-vs-cabal-files - хотя не всё)))
Evgeniy
https://docs.haskellstack.org/en/stable/GUIDE/#adding-dependencies
Evgeniy
stack path - хорошая команда
Evgeniy
позволяет посмотреть окружение
Anatolii
Помойму у стака документация была не плохая
Anatolii
И в каком-то из выпусков бананов и линз рассказывали про стак
Evgeniy
Помойму у стака документация была не плохая
Со стэком адъ зависимостей почти прекратился -)
Anatolii
Да, жить хорошо и просто 😀
Evgeniy
Типа скачал хэллоуворд и он должен запуститься почти без проблем
Anonymous
Со стэком адъ зависимостей почти прекратился -)
Он уже почти прекратился с cabal sandbox
blkmrkt
А кто-нибудь писал многопоточный кравлер на хаскеле? Нужно выжать максимум производительности, интересуют типичные подводные камни. Я вот использую http-client, и мучался с непонятными багами с HTTPS_PROXY из environment. Чудом обнаружил что автор активно поддерживает это дело на гитхабе, и вся туса там в /issues. Оказалось что у меня была старая версия пакета. В новой версии уже общий Manager не жрет 40GB RAM на 500 подключений с tls, и добавлено куча удобных утилити ф-й.
blkmrkt
Вот еще всегда хотел спросить – почему в хаскеле такая странная система импортов через категории, по типу веб-порталов конца девяностых-начала нулевых? Почему не import "http-client" например? Если появится конкурирующая с http-client либа, она тоже поместится под Network.HTTP.Client?
blkmrkt
Интересно а зачем многопоточный кравлер на хаске а не например на го?
Хочется фяп изучить, довольно интересно это. Я уже на днях сдался и начал на Rust писать, но вот сейчас вышел ночь гулял, вернулся домой, и меня осенило что тут какой-то баг не от моего кривого кода.
blkmrkt
а в go мне этот хорёк не нравится, ненавижу его
blkmrkt
и еще слышал что у хаскеля более продумано распараллеливание на N ядер в отличае от го
Evgeniy
А как ты обрабатывешь "ошибки" в этом "кравлере" - я опять про 10 способов почитал и опечалился снова)))
blkmrkt
еще retryN
blkmrkt
меня вообще вот эта статья натолкнула на хаск http://www.michaelnielsen.org/ddi/how-to-crawl-a-quarter-billion-webpages-in-40-hours/
blkmrkt
ой не не эта, какая-то другая, тоже EC2, только код на хаскеле
blkmrkt
использовать cabal уже предлагали?
угу все решили, спасиб
Alexander
я иногда делаю stack sh и внутри кабал/pure ghc
Alexander
но это на свой страх и риск и не повторять
SimpleX
Я бы не стал использовать исключения напрямую
SimpleX
Так можно обернуть в EitherT и получить ошибку в Left
Anatolii
я вот тоже поддерживаю такой подход
Anatolii
потому что это какая-то джава получится а не хаскель
SimpleX
Либо так, либо без исключений, тем более в либе
blkmrkt
(MonadIO io, MonadThrow io) => ... -> io a
я пока слабо себе представляю как пользоваться монадами. по сигнатуре видно что это что-то, заверноутое в что-то другое, но непонятно тип ли это из какой либы монад, или подразумевается что его нужно определять самому
SimpleX
Имхо
SimpleX
Пакет exceptions
SimpleX
Там есть доки
Evgeniy
SimpleX
Нафиг errors
Evgeniy
Почему?
SimpleX
Exceptions Best Practices - School of Haskell | School of Haskell https://www.schoolofhaskell.com/user/commercial/content/exceptions-best-practices#exceptt-io-anti-pattern
Evgeniy
Спсб
SimpleX
Потому что это еще один плохой способ
SimpleX
И лучше в своем коде писать общий вид функций
SimpleX
То есть не IO, а MonadIO
SimpleX
Не Int/Word etc, а Integral или Num. Там, где это имеет смысл, конечно.
SimpleX
Тогда либой будет куда легче пользоваться
Dmitry
О благородные судари, подскажите пожалуйста изучающему. В хаскеле "+", например, является функцией. Отсюда у меня возникает вопрос, является ли функцией "="?
Anatolii
это лгеко проверить
Anatolii
зайди в ghci
Anatolii
и забей
Anatolii
:t (=)
Anatolii
если это функция
Anatolii
то оно тебе тип покажет