
Denis
09.02.2018
13:09:34
я ничего не закрываю, по одной опции на строчку с -with-rtsopts=абырвалг

Leonid
09.02.2018
13:10:59
моноед!

Denis
09.02.2018
13:12:08
полиед!

Alexander
09.02.2018
13:20:29
а в хаскеле можно правильно реализовать паттерн "синглетон"?

Google

Alexander
09.02.2018
13:20:44
понятно что будет что то типа instance :: IO Singleton

Alexander
09.02.2018
13:23:39
@catamorphism пни меня в районе 6
я скину как кавычки делать
там нужно дважны экранировать или т.п.

Leonid
09.02.2018
13:24:09

Denis
09.02.2018
13:24:21

Alexander
09.02.2018
13:24:42
просто удивился, что нет готового решения

Alexander
09.02.2018
13:25:24
"-with-rtsopts=-s -N3 -n4m -A64m -qb0 -I0 -T"
вот это из кабалфайла
@catamorphism

Leonid
09.02.2018
13:25:43

Google

Denis
09.02.2018
13:25:44
попробую

Leonid
09.02.2018
13:26:02
я про это и говорил

Alexander
09.02.2018
13:26:07
IO Singleton это не то несколько

Alexander
09.02.2018
13:26:46
а зачем?
ну обычно оно на каждый чих есть

Alexander
09.02.2018
13:27:06
редко и делается одной строкой

Alexander
09.02.2018
13:27:20
а что за строка?

Leonid
09.02.2018
13:27:25
Синглетоны даже в вашем SOLID OOP антипатерн

Alexander
09.02.2018
13:27:36
unsafePerformIO + NOINLINE

Alexander
09.02.2018
13:27:38

Alexander
09.02.2018
13:27:50
hlint его подсказывает теперь?

Alexander
09.02.2018
13:28:00
ага
ну или ghc-mod, но он вряд ли

Alexander
09.02.2018
13:28:19
что интересно т.к. иногда может быть наоборот inline надо

Denis
09.02.2018
13:28:25
https://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons
гугл еще подсказывает singletons considered stupid

Alexander
09.02.2018
13:28:41
так это же линтер, когда inline надо он типа ругается что антипаттерн

Leonid
09.02.2018
13:28:48
обоснуй
https://www.google.ru/search?q=singletons+considered+harmful

Alexander
09.02.2018
13:28:49
просто нужно правильные синглетоны

Google

Alexander
09.02.2018
13:28:59
1 значение - 1 тип
и все круто
ещё и подобие DT поверх

A64m
09.02.2018
13:29:21
НЕ ОЧЕНЬ

Alexander
09.02.2018
13:30:01
ну типа конечно правильные вещи пишут
но альтернативы я там не особо нашел

Denis
09.02.2018
13:30:11
НЕ ОЧЕНЬ
синглтоны или кавычки в кабал файле?

A64m
09.02.2018
13:30:24
синглетоны

Alexander
09.02.2018
13:30:40
местные или оопшные?

A64m
09.02.2018
13:30:52
и те и другие

? animufag ?
09.02.2018
13:31:04
синглтон = шарить стейт. а хаскель как-то не очень с этим

Leonid
09.02.2018
13:31:05

Alexander
09.02.2018
13:31:14
ну то есть понятно, что можно взять все синглтоны, собрать вместе, завернуть в readerT и херануть в код, но фреймворк сука против
ну вот, например, пул подключений к СУБД

Leonid
09.02.2018
13:31:49
все, ВСЕ делают пул в ридере

kana
09.02.2018
13:31:58

Leonid
09.02.2018
13:32:26
(MonadReader r m, HasPool r) => и -> вперда

Alexander
09.02.2018
13:32:27
ну в том, что в фреймворке захардкожен тип IO (FrameworkMonad ())
и я не могу переопределить FrameworMonad

kana
09.02.2018
13:32:51
че за фреймворк такой

Google

Leonid
09.02.2018
13:32:53
lift то можно?

Alexander
09.02.2018
13:33:29
happstack-lite же
не, ну lift можно

Leonid
09.02.2018
13:33:44
хапстак вообще весь на трансформерах
там три десятка трансформеров в глубину

Alexander
09.02.2018
13:33:58
вот лайтовая версия видимо нет
надо бы апгрейдится на нормальную

Alexander
09.02.2018
13:34:45

Alexander
09.02.2018
13:35:04
куда я там reader запихну?*
мне же его вызвать надо из-за пределов main loop

Alexander
09.02.2018
13:35:47
юя не очень хочу читать интерфейсы хапстакп

Leonid
09.02.2018
13:35:52
serve config (runReaderT myApp pool)

Alexander
09.02.2018
13:36:05
серьезно, заработает?Нг

Alexander
09.02.2018
13:36:09
но вот как выше наверняка можно

Alexander
09.02.2018
13:36:18
дока у них из говна походу
спасибо за помощь

Leonid
09.02.2018
13:36:46
ты не гони, автор голыми руками , практически один, этот хаппстак поднял
первый фреймворк для вебчика на хаскеле

Alexander
09.02.2018
13:37:12
я код и автора не отождествляю

Leonid
09.02.2018
13:37:19
Джереми молодец и умничка

Google

Alexander
09.02.2018
13:37:27
если все заработает сделаю PR в доку

Leonid
09.02.2018
13:38:05
я бы, правда, на твоём месте сильно в happstack не вкладывался

Alexander
09.02.2018
13:38:09
чего мне с stm-conduit делать?
там прилично поменялось то, что ожидается от кода и наверное поломаю чужой код

Leonid
09.02.2018
13:38:33

Alexander
09.02.2018
13:38:41
да, уже перевел

Leonid
09.02.2018
13:38:52
выпускай очень мажорную версию

Alexander
09.02.2018
13:38:54
отсуствие финализаторов в conduit

Leonid
09.02.2018
13:39:00
саппорти предыдущую

Alexander
09.02.2018
13:39:07
но я потом хочу ещё более мажорную

Leonid
09.02.2018
13:39:18
делай две!

Alexander
09.02.2018
13:39:29

Александр
09.02.2018
13:41:15
*сервис, сорри
мне же его вызвать надо из-за пределов main loop
Вот именно здесь нужно задуматься над тем, есть ли у вас разделение на чистую модель предметной области и на нечистый рантайм (интерфесы и имплементация). В таком дизайне вопросов про пулы не возникает, так как пул БД, всякие HTTP клиенты и все похожее - чисто рантаймные штуки и не имеют отношения к предметной области. А значит, должны уйти в имплементацию. Можно и MonadReader паттерн

Alexander
09.02.2018
13:46:48
ничего не понял :(
но и не важно

Александр
09.02.2018
13:46:58
И, повторюсь, фри монады решают эту проблему очень хорошо

Leonid
09.02.2018
13:47:00

Александр
09.02.2018
13:47:08
Но не обязательно только они

Leonid
09.02.2018
13:47:25
Ну вот опять