
Yuriy
11.08.2018
16:09:24

Denis
11.08.2018
16:13:43

The mirror
11.08.2018
16:16:57
Можно во Wrapped переименовать и все
Я не понял как Wrapped решает проблему, описываемую в статье. Описать весь контекст проблемы в паре слов достаточно сложно, надеюсь, что кто-нибудь здесь читал и помнит эту статью.

Google

Denis
11.08.2018
16:18:08
Wrapped это просто тип обертка вокруг типа анонимной функции
По статье не скажу точно

Alexander
11.08.2018
16:19:24
там не просто функция она "динамически" полиморфная RankN полиморфизм
и.е. это функция которая работает с любым типом реализующим соотв класс типов
хотел написать как это в скале или жаве, но понял, что не знаю

Yuriy
11.08.2018
16:26:47

The mirror
11.08.2018
16:32:56
https://scastie.scala-lang.org/w8CAEjIRQFqFJ0eAOHhAsw

Alexander
11.08.2018
18:29:02

Yuriy
11.08.2018
18:29:26

Alexander
11.08.2018
18:29:56
я бы такое про экзистенциальные типы сказал, а не про RankN

Yuriy
11.08.2018
18:34:56
а в данном случае что?

Alexander
11.08.2018
18:35:37
мне этими же терминами тяжело сказать

Google

Yuriy
11.08.2018
18:35:55
а! я в первый раз был прав, потом переписал на неправильное

Alexander
11.08.2018
18:36:05
внутри wrapped лежит функция, в которую можно передать любой тип определяемый caller-ом
в экзестенциальном типе лежит какие-то данные, тип которых был определен тем, кто Wrapper создавал
но тоже дурацкое объяснение у меня

Yuriy
11.08.2018
18:40:21
можно сказать, что этот Wrapped позволяет работать с полиморфным значением как с обычным мономорфным?

Alexander
11.08.2018
18:41:34
наверное
но я бы сказал, что Wrapped позволяет выразить полиморфную функцию в runtime
т.е. без него бы специализация должна бы была произойти в compile time
но может это хаскель деформация

kana
11.08.2018
20:53:28
очень мало знаю фронтов, которые любят жс, это или очень редкие люди, или новички

Vyacheslav
11.08.2018
21:52:28
Подскажите, а какие варианты есть вообще, если мне нужно отдебажить такое вот:
thread blocked indefinitely in an STM transaction
Когда такое происходит и где/как искать проблему

Alexander
11.08.2018
21:53:53
большая программа?
можно с prof собрать и -xc запустить
если не слишком большая то будет видно откуда прилетело
ещё можно добавить аннотацию для трейсов

Google

Alexander
11.08.2018
21:55:30
ну и поправить систему ловли исключений, чтобы было видно, откуда прилетает
вообще это deadlock где-то

Vyacheslav
11.08.2018
21:55:54
программа не очень вроде большая

Alexander
11.08.2018
21:56:09
например читаешь из TMVar на который ни у кого ссылок нету

Vyacheslav
11.08.2018
21:56:12
может 1-2к строк в сумме

Alexander
11.08.2018
21:56:20
т.е. никто туда никогда не запишет

Vyacheslav
11.08.2018
21:56:26
проблема в том, что я напрямую нигде STM не юзаю

Alexander
11.08.2018
21:56:39
может юзают нижележащие либы

Vyacheslav
11.08.2018
21:56:47
это да

Alexander
11.08.2018
21:57:01
вообще ловля исключений и логирование должно быть так что понятно откуда летит

Vyacheslav
11.08.2018
21:57:02
я использую каналы и там вроде они поверх STM

Alexander
11.08.2018
21:57:12
TChan ?

Alexander
11.08.2018
21:57:15
они да

Vyacheslav
11.08.2018
21:57:26
просто Chan
из Control.Concurrent.MonadIO

Alexander
11.08.2018
21:57:34
и если у тебя канал, и ты читаешь, а никто не пишет - то такое словишь
просто Chan - нет
и переходи на TChan, Chan не нужен
в крайнем случае на Queue

Vyacheslav
11.08.2018
21:58:24
а можешь скинуть почитать что-то или коротко объяснить в чем разница?

Google

Alexander
11.08.2018
21:58:29
в чане операции отличающие его от Queue могут к дедлоку приводить
не уверен, что хороший ресурс знаю
Chan он на MVar
TChan тоже самое но поверх STM
там можно больше операций без опасений делать
типа unget и isEmpty

Admin
ERROR: S client not available

Alexander
11.08.2018
21:59:56
Queue какая-то более простая структура, где этих операций нету
но я даже сходу не скажу какая, надо в исходники посмотреть, там обычно просто
STM работает достаточно быстро, если нету конфликтов то даже обходит решение на MVar
и если транзакции не очень длинные
так.. я завтра подробнее могу расписать

Vyacheslav
11.08.2018
22:03:06
Ок, на самом деле стало понятнее. И на самом деле у меня даже появилась гипотеза что не так. Видимо надо немного исключения переделать

ТТ
12.08.2018
04:21:03
Вот это - самое оно
это вообще из какой области?
Похоже
https://www.apsstandard.org

Yuriy
12.08.2018
07:54:37
кажется, никто не отозвался на APS. а как это связано с Хаскелем?

Alexander
12.08.2018
07:58:15
очень желаю услышать ответ на этот вопрос, а то у меня детектор спама чешется
@im_your_lord ^

Google

Евгений
12.08.2018
10:18:23
/stat@combot

Combot
12.08.2018
10:18:23
combot.org/c/-1001043143583

Alexander
12.08.2018
10:19:56
прикольно если бы тот мог статистику по людям на каналах давать

Евгений
12.08.2018
10:20:34
Можно период выбрать и посмотреть кто сколько флудил
Или ты про то, сколько где другие флудя ?

Alexander
12.08.2018
10:29:00
да

Андрей
12.08.2018
10:34:06
как определяется что сообщение флуд / не флуд?
у меня было 2 сообщения и 73% флуда, получается каждое сообщение может содержать флудёвую и нефлудёвую информацию одновременно

Dmitry
12.08.2018
10:37:39
Ну вот сейчас уже три, и последнее - флуд
Так как не по теме чата
;)

Alexander
12.08.2018
11:58:20
отношение количества текста к количеству сообщений с каким-то коэффициентом
может чуть сложнее, в общем достаточно бесполезная метрика

Евгений
12.08.2018
12:05:37

Dmitry
12.08.2018
12:12:39
Соглашусь

Alexander
12.08.2018
13:05:28
а ну да
показывает насколько человек привык к irc

Yuriy
12.08.2018
13:14:36
как это связано с IRC?