@haskellru

Страница 829 из 1551
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
понятно что будет что то типа instance :: IO Singleton
с unsafePerformIO разве что, нужно же IORef (или еще какой реф) сделать

Alexander
09.02.2018
13:24:42
с unsafePerformIO разве что, нужно же IORef (или еще какой реф) сделать
ну я сейчас примерно так и сделал, первый в жизни unsafePerformIO

просто удивился, что нет готового решения

Alexander
09.02.2018
13:25:24
"-with-rtsopts=-s -N3 -n4m -A64m -qb0 -I0 -T"

вот это из кабалфайла

@catamorphism

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
а зачем?
ну обычно оно на каждый чих есть

NOINLINE не забудь
hlint тащит ?

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: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
и те и другие
а как еще делать FastString?

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

ну вот, например, пул подключений к СУБД

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

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: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
я бы, правда, на твоём месте сильно в happstack не вкладывался
да чем там вкадываться, мне от него ничего сложнее роутинга и не надо то было

Александр
09.02.2018
13:41:15
Синглетоны даже в вашем SOLID OOP антипатерн
В SOLID Синглтонов нет. Есть в GoF. Но таки да, антипаттерн

синглтон = шарить стейт. а хаскель как-то не очень с этим
Не обязательно. Это может быть stateless сервер

*сервис, сорри

мне же его вызвать надо из-за пределов 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
Ну вот опять

Страница 829 из 1551