
Leonid
25.12.2017
13:38:22
вроде нет

Alexander
25.12.2017
13:38:24
может попрыгать через кольца горящие придётся

Leonid
25.12.2017
13:38:31
не в зависимостях

Kirill
25.12.2017
13:40:41
@lonokhov нет == не в зависимостях ghc?

Google

Leonid
25.12.2017
13:41:17
stm не распространяется с ghc

Евгений
25.12.2017
13:45:52
ghc зависит от stm:
https://github.com/ghc/ghc/tree/master/libraries

Leonid
25.12.2017
13:46:40
а чего его в доках нет?
ну тогда беда
вроде для стэка это танец с бубном, с nix я даже не знаю.

Kirill
25.12.2017
13:51:02
@lonokhov а что за танец? я вроде указал гитхаб - оно пересобирает ещё

Евгений
25.12.2017
13:51:22
https://hackage.haskell.org/package/base-4.10.1.0/docs/GHC-Conc.html#t:STM
Хммм

Kirill
25.12.2017
13:51:23
или типа не сойдётся в рантайме? :)

Leonid
25.12.2017
13:51:23
ну раньше там были сложности с бут либами из ghc
не соёдется только если ты ghc как либу используешь :)
но сама модель stackage не позволяет такое
ну версию бут пакета менять
@elemir90 это примитивы только

Google

Kirill
25.12.2017
13:54:49
@lonokhov но стэк собирает с гитхабной версией
просто указал в пакетах

Leonid
25.12.2017
13:56:24
ишь чо

Kirill
25.12.2017
13:57:23
но терь код ещё портануть надо

illiatshurotshka❄️
25.12.2017
14:02:19
а можно ли считать что ⊤ в хаскеле это forall a. a?

Index
25.12.2017
14:06:59
в каком смысле ⊤?
forall a. a это ненаселённый тип, он скорее ⊥

GNU/Maybe
25.12.2017
14:07:31

Index
25.12.2017
14:07:49
тогда скорее Dynamic

GNU/Maybe
25.12.2017
14:08:03
Ну нет

Denis
25.12.2017
14:08:06

GNU/Maybe
25.12.2017
14:08:15
А динамик позволяет всё

illiatshurotshka❄️
25.12.2017
14:08:29

Index
25.12.2017
14:09:03
forall a. a -> ... это top type, forall a. ... -> a это bottom type
top type в положительной позиции это Dynamic, т.к. можно любой другой тип как Dynamic вернуть из функции

GNU/Maybe
25.12.2017
14:10:11
Ну суть в том, что динамик в шарпе это нетипизированное что-то, а а эти любой тип

Index
25.12.2017
14:10:47
это ближайший аналог, в Хаскеле ведь нет "нетипизированного чего-то"

GNU/Maybe
25.12.2017
14:10:54
А T в дженерике как раз примерно эквивалентен a

Google

GNU/Maybe
25.12.2017
14:11:02
?
Хотя это object скорее

Index
25.12.2017
14:11:40
Dynamic это и есть Any, только еще с информацией о типе (чтобы назад пробовать скастовать)

GNU/Maybe
25.12.2017
14:12:08
Не знаю, можно ли через ртти посмотреть тип динамика

Index
25.12.2017
14:12:24
data Dynamic = MkDynamic TypeRep Any :)

GNU/Maybe
25.12.2017
14:12:33
Если бы это использовали просто чтобы разные значения вернуть, то объект был бы не нужен
Я про Шарп если что сейчас

Index
25.12.2017
14:13:02
а, ок, я в C# не знаю про Dynamic

GNU/Maybe
25.12.2017
14:13:12
Динамик там обычно используется для того, чтобы вернуть анонимный тип
Потому что его никак не описать

GNU/Maybe
25.12.2017
14:13:51
Интересно
В смысле он Typeable?

illiatshurotshka❄️
25.12.2017
14:14:10
так получается нет никакого типа к которому можно подставить любое значение?

Index
25.12.2017
14:14:18
В смысле Typeable в основном существует ради Dynamic и ему подобных штук

GNU/Maybe
25.12.2017
14:14:23
Ага
Понятно

Index
25.12.2017
14:14:43

illiatshurotshka❄️
25.12.2017
14:14:55
это типобезопасно?

Google

Index
25.12.2017
14:14:59
Да

illiatshurotshka❄️
25.12.2017
14:15:08
а
здесь же нужно привести к типу через функцию
это не совсем то что интересует

Xeta Felius
25.12.2017
14:15:56

Alexander
25.12.2017
14:16:11
тоже вариант

Index
25.12.2017
14:16:26
ghci> x = toDyn (5 :: Int)
ghci> fromDynamic @Bool x
Nothing
ghci> fromDynamic @Char x
Nothing
ghci> fromDynamic @Int x
Just 5
ilia ^ вот тебе short tutorial в Dynamic

Xeta Felius
25.12.2017
14:17:02

Admin
ERROR: S client not available

Alexander
25.12.2017
14:17:22
ну не тупой, например, то что ipv6 бы не работало, это не очевидно
пришлось кстати повозиться, чтобы это понять

Index
25.12.2017
14:17:36

Xeta Felius
25.12.2017
14:17:47
Не. Глянуть хостс было очевидным))

Index
25.12.2017
14:17:48
но можно через CPS энкодить

Xeta Felius
25.12.2017
14:19:33
С другой стороны. Ещё один вопрос был. Какие библиотеки юзаете для p2p? А то библиотек дофигища. Но возможно самое актуальное это Cloud Haskell

Alexander
25.12.2017
14:20:05
можно использовать просто network-transport
без всего этого CH безобразия

Xeta Felius
25.12.2017
14:20:41
Чому сразу безобразия?)

Alexander
25.12.2017
14:20:41
можно использовать байндинги к общим либам типа zeromq,nanomsg,gRPC и прощей гадости

Google

Alexander
25.12.2017
14:20:48
там много безобразия
хотя сейчас оно более менее работает

Leonid
25.12.2017
14:21:12
Академики писали...

Alexander
25.12.2017
14:21:23
вон в serokell/iohk используют просто network-transport
у нас использовался CH, но боюсь мы на этом достаточно времени убили

Leonid
25.12.2017
14:21:47
А он же без tls, не?

Alexander
25.12.2017
14:22:14
,без

illiatshurotshka❄️
25.12.2017
14:22:16

Xeta Felius
25.12.2017
14:22:33
А вот это уже интересно, спасибо)

Alexander
25.12.2017
14:22:34
но если ты на чисто n-t уровне работаешь, никто не запрещает шифровать сообщения
смотри, если тебе прям-вообще CH не нужен - лучше не брать

Leonid
25.12.2017
14:22:50
И то верно

Alexander
25.12.2017
14:23:02
ну и в zeromq-бекенде есть шифрование
но CH его не умеет
вроде
но zeromq-backend дурацкий, его какой-то бородатый упырь писал

Xeta Felius
25.12.2017
14:23:43

Alexander
25.12.2017
14:24:02
так вот, если у тебя общий кластер и не хочется думать что где работает

Xeta Felius
25.12.2017
14:24:14
Я ток бэкэнд CH — simple network глянул. А master-slave мне явно не нужен.

Alexander
25.12.2017
14:24:24
при этом хочется явно слать сообщения и ты любишь/понимаешь OTP и erlang-style

Xeta Felius
25.12.2017
14:24:40
Видимо и без бэкенда можно CH юзать

Alexander
25.12.2017
14:24:41
нужно нахаляву общее пространство имен и single executable тебя устраивает