https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
Я понял, там хранилище сейчас открытых ресурсов ипа ReaderT или что-то такое
Читать полностью…Я не совсем правильно выразился, оно сделано по подобию ресурст, но не использует ресурст
Читать полностью…Вообще кстати hGetContents из linear был бы норм, там хотя бы семантика в типах видна была
Читать полностью…Единственный спосб сделать liftIO в этом апи это создать фейк ресурс
Читать полностью…ну, я отвечаю на concern, что BL.hGetContents имеет неочевидное поведение и что хорошо бы его поменять.
Читать полностью…Ну, можно класть, но все вычисления внутри должны быть. Но там легко ошибиться. Так, то для ленивого или ForeignPtr надо или ресурсы разных видов, linear, resourcet, etc
Читать полностью…я не разбирался, там вроде какие-то пляски с QualifiedDo и https://hackage-content.haskell.org/package/linear-base-0.5.0/docs/System-IO-Linear.html нужны
Читать полностью…https://hackage-content.haskell.org/package/linear-base-0.5.0/docs/System-IO-Resource-Linear.html
Читать полностью…Хотя не правильно посчитал, на Elixir это вместе с данными, там mp3 файлов на 7 Мб, так что не сильно больше.
Читать полностью…так что даже не меняя язык размер проекта сравним с полны переписыванием
Читать полностью…А что по выходу из скоупа, или из него не выйти (как с IO)?
Читать полностью…Да, чтоб в случае исключения всё закрыть, вот тут я про это писал
Читать полностью…А à-la resource-там там чтобы в случае исключения всё прикрыть?
Читать полностью…Из интересного: запуск ресурс ио закрывает ресурсы как onError, а не как finally, позволя убрать дерганье словарика с релиз ключами на выходе, если не было исключения
Читать полностью…я, честно говоря, linear-base
никогда не использовал. хорошо бы какие-то части его в base
засунуть, хотя бы этот вездесущий Ur
.
Но да, hGetContents вообще там себе история и для LBS и string
Читать полностью…Там в апи этой самой монады рио проблема, лифт ио это всегда ансейф и даже ручки для "лифтани ио, без муток с ресурсами" нету
Читать полностью…верно, см. дальше в моем сообщении, что это маргинальный случай. обычно lazy IO под брекет не кладут.
Читать полностью…Не, у него не убегал (я по кода думал, что убегает), у него там строгий консьюмер
Читать полностью…Она не позволяет вызывать ио внутри себя, только работу с ресурсами дозволяет, мне это не понравилось
Читать полностью…Я бы хотел линейный апи для этого добра, чтоб хендлер пожирался гет контентом или результат становился бы линейным внутри колбека бракета. Но линейный апи это всё ещё боль, т.к. нет линейных констреинтов, а их обсуждение уже два года на одном месте
Читать полностью…Для сравнения, на Nim получается бинарник 1 Мб (сборка быстрая и удобная под разные платформы и с нужными glibc), на Elixir архив порядка 10 Мб, это с его виртуальной машиной, и beam файлами (сборка не удобная, под Arm приходится на Arm собирать, но разрабатывать удобно, быстрая компиляция через recompile без потери состояния запущенного проекта), на Haskell ещё не смотрел, но вроде обнадёживающе, хотя уже видно, что размер бинарника будет больше, чем на Nim.
Читать полностью…Там в любом случае перетаскивать, там они на sympony второй версии, кажется она deprecated уже больше лет 10
Читать полностью…