
Leonid
06.07.2018
14:01:51
Can't burrow immutably, mutable borrow at this point huita.rs::1488:42

A64m
06.07.2018
14:03:32

Евгений
06.07.2018
14:03:52
После ML'я-то, конечно, хаскель удобный

Google

Yura
06.07.2018
14:26:39
Друзья, есть необходимость ограничить параллелизм. Например, мы слушаем на tcp сокете в accept, на каждый connect делаем forkIO, но хочется ограничить возможность спавнить нити.
Причём лучше без каналов.

Aleksey
06.07.2018
14:28:10
ref со счётчиком?

Yuriy
06.07.2018
14:28:18
-N спасёт?

Aleksey
06.07.2018
14:28:50
Я так понимаю, что нужен некий пул

Yuriy
06.07.2018
14:28:51
или нужна критическая секция?

Yura
06.07.2018
14:29:30
пулы насколько я понимаю сделаны на каналах
forkIO на каждый connect работает норм даже на высоких нагрузуках, но тут соединение прибивается по таймауту, если клиент не прибил
я вот думаю https://lwn.net/Articles/542629/ REUSEPORT использовать или что-то самому накрутить

Leonid
06.07.2018
14:35:10
@drcha0s http://hackage.haskell.org/package/async-pool-0.9.0.2/docs/Control-Concurrent-Async-Pool.html

Yura
06.07.2018
14:35:53
Page not found
:)
но я поня

Google

Leonid
06.07.2018
14:36:09
починил

Vladimir
06.07.2018
14:36:44
посмотрите на rate-limit
или ему подобные на hackage
а reuseport это больше для
балансировки нагрузки,
зачем здесь - непонятно

Aleksey
06.07.2018
14:38:25

Yura
06.07.2018
14:41:03

Leonid
06.07.2018
14:42:28
forkIO же дешевый совсем совсем. Или тебя смущают другие ресурсы?
сразу после форка пусть тред ждёт на семафоре и всё. Правда я не уверен что хаскельный семафор будит треды в том порядке в котором они в вейт встали
т.е. будут некоторые треды которые хоть и встали в вейт раньше но получат тикет позже

Vladimir
06.07.2018
14:44:38
тут пул воркеров напрашивается, если форк
для вас такой дорогой

Yuriy
06.07.2018
14:46:14

Leonid
06.07.2018
14:46:32
Ааа, лол
Так там слишком много в TIMED_WAIT остаётся? Или нужно просто limit поднять?

Yura
06.07.2018
14:52:59
recurcive DNS он уже работает для UDP, сейчас туда добавляется TCP и TLS
так вот сразу закрывать TCP и TLS не получается и надо ждать десятки секунд если клиент не закрыл соединение

Alexander
06.07.2018
14:57:36

Yura
06.07.2018
15:38:42

Andrew
06.07.2018
16:32:50
Фух. В чате про кресты пропагандировал Haskell как мог ?

Александр
06.07.2018
16:47:46

Andrew
06.07.2018
16:58:32
supapro.cxx
Чат для тех, кто хоть немного знает C++, простые вопросы по реализации, синтаксису и компуктерам - сюда, а для другого есть:
/Главный чат по серьезным вопросам — @ProCxx
/Чат по обсуждению всего — @fludpac
?flood, pron, spam;
✅УВАЖАЙТЕ ДРУГ ДРУГА!
https://t.me/supapro
Это для совсем зеленых ?

Google

Andrew
06.07.2018
16:59:00
Извините за рекламу

Андрей
06.07.2018
19:29:35

Евгений
06.07.2018
20:42:15
Лукс лайк спам

Pavel
06.07.2018
20:42:32
да это стеб про кресты
С++

Alister
06.07.2018
20:42:41
Дело в том, что характерной чертой социопатов является то, что они не умеют сопереживать, сочувствовать, испытывать чувство вины и привязанности

Антон
06.07.2018
20:44:27

shadowjack
07.07.2018
07:17:15
Если я хочу применить список функций к списку аргументов, то zipWith id fList aList - это самый нормальный способ?

A64m
07.07.2018
07:18:44
zipWith ($)

shadowjack
07.07.2018
07:19:42
ну учитывая что $ - это инфиксная форма id с низким приоритетом, то где смысл?

Pineapple
07.07.2018
07:24:18
Читаемей. Сразу видно, что речь идёт о приминении функций

kana
07.07.2018
14:36:12

A64m
07.07.2018
16:11:43
оказывается видео с icfp 2017 все еще выкладывают
смотреть и слушать то что уже выкладывали обычно почти невозможно, правда

Yuriy
08.07.2018
06:23:02
На этой неделе новых вакансий не замечено, но вот эти ребята всё ещё нанимают:
⭐️ Biocad (@Mensh)
⭐️ HXR (@hxr_haskell_job)
⭐️ Kaspersky Lab (@cblp_su, @icrbow)
⭐️ metrix.ai (jobs@metrix.ai, @wormholio)
⭐️ Tweag I/O (@qnikst)
⭐️ Typeable.io (@catamorphism)
⭐️ getshop.tv не нанимает активно, но можно слать резюме на nickolay@getshoptv.com

A64m
08.07.2018
10:16:26
кайнды убрали - а значит самое время начинать писать книгу в которой слово кайнд встречается по бразиллиону раз на страницу
http://reasonablypolymorphic.com/types.pdf

Vitaly
08.07.2018
10:22:42
Библиография смешная
Но пусть пишет, вообще с type level программированием всё плохо, вон, well typed даже платные курсы с секретным контентом запускает.

Антон
08.07.2018
10:38:59

Google

kana
08.07.2018
10:39:52

Антон
08.07.2018
10:41:10

Евгений
08.07.2018
10:42:55
Зашибись, хотели lazy idris, получили lazy nurpl

Антон
08.07.2018
10:43:25

A64m
08.07.2018
10:44:18

分解物質
08.07.2018
10:45:56

Admin
ERROR: S client not available

kana
08.07.2018
10:45:57
так, прошелся по ревизиям coresyn.hs, там никогда и не было упоминания каиндов, хоть @bravit111 вроде рассказывал, что были

Sergey
08.07.2018
10:47:05
типы
то есть они унифицировали работу с HKT или что, или как?

Евгений
08.07.2018
10:47:07
типы
Ага, только тайпчекинг не стопится, в отличие от старого доброго кайнд-чекинга

Sergey
08.07.2018
10:47:27
или просто вернулись к тайплевел лиспу?

A64m
08.07.2018
10:48:24
раньше было
0 :: Int :: * :: BOX
терм тип кайнд сорт
теперь
0 :: Int :: Type :: Type :: Type :: Type
терм и типы ол зе вей даун

Vitaly
08.07.2018
10:48:32

Sergey
08.07.2018
10:49:36

Евгений
08.07.2018
10:54:34
А какой тип у тайпклассов?

Антон
08.07.2018
10:58:32

kana
08.07.2018
10:58:56
Maybe :: Type -> Type

Евгений
08.07.2018
10:58:59
Type -> Type, небось
А вот Constraint :: Type или как?

kana
08.07.2018
11:05:14
ну да, похоже, все рано или поздно попадает в Type

Google

Denis
08.07.2018
11:39:56

Евгений
08.07.2018
11:49:41
Ага, универсум джирарда xD
Вообще всё-таки под универсумом обычно понимают непротиворечивые пространства типов

Антон
08.07.2018
11:54:29

kana
08.07.2018
11:56:27
Add * :: *. Why do this? One alternative is to go the route of Coq and Agda and have an infinite tower of type universes. But, this adds a lot of complexity. These languages take this route because * :: * makes a language inconsistent as a logic. However, Haskell is already inconsistent as a logic (because of undefined and GHC.Exts.Any) and so we don't have to worry about a new source of inconsistency. Furthermore, the type safety of Haskell does not depend on its own consistency -- unlike Coq and Agda, Haskell relies on the consistency of a coercion language, which is not threatened by * :: *.


Евгений
08.07.2018
11:56:37
Всмысле почему typeintype, а не type1 :: type2 :: type3?
Я думаю, что из-за "практического" направления. "Практикам" зависимые типы нужны, в основном, как способ строить абстракции, а не инструмент доказательства корректности
Конечно люди, разрабатывающие гхц умнее меня, но умозрительно кажется, что есть вероятность, что тайп-левел магия перестанет завершаться. И мы получим не только 50гб памяти на компиляцию, но и бесконечное время


Pineapple
08.07.2018
12:06:42
UndecidableInstacnes довольно чтобы получить незавершимость

Ilya
08.07.2018
12:37:23
объясните, как это все кайнды имели сорт BOX? почему только один сорт, и что из себя представляли бы кайнды других сортов

A64m
08.07.2018
12:38:19
там же стек ограничен, так что бесконечного времени не будет

Слава
08.07.2018
12:38:38
О Box
В хаскелле такое можно?
http://www.eelis.net/C++/analogliterals.xhtml

Евгений
08.07.2018
12:40:38

A64m
08.07.2018
12:42:21
какой там цикл на тайплевеле то. да и оптимизатор для коерций только

Антон
08.07.2018
13:05:07
Лол, питонисты не умеют в HOF: https://www.codewars.com/kata/525f3eda17c7cd9f9e000b39/solutions/python/all/newest

shadowjack
08.07.2018
13:25:14
Почему не могут?

Антон
08.07.2018
13:25:31