
kana
29.05.2018
10:33:58
Я правильно понимаю, что с DH семейства будут не нужны (именно с ним)?

Index
29.05.2018
10:34:28
Может раньше, я хочу этим заняться

A64m
29.05.2018
10:34:46
в смысле, не нужны?

kana
29.05.2018
10:35:25
Разве они не заменятся на обычные функции от типов к типам?

Google

A64m
29.05.2018
10:36:01
синтаксически-то да, может и будут выглядеть как обычные функции
но это ж все равно семейства будут
там же вся эта коэршн-машинерия из FC остается

Index
29.05.2018
10:37:13
Семантически может и не будут. Надо избавляться от застревания, добавлять констрейнты, частичное применение, и т.д.
То есть если и будут, то не такие как сейчас
Ну и порядок вычисления делать нормальным, а то сейчас ни ленивый, ни строгий

A64m
29.05.2018
10:37:58
ну, в деталях не такие

Index
29.05.2018
10:39:20
Ну если все детали поменять, то что останется? И если говорить про Core, его же тоже переделывают. Хотя Coercion остаются вроде, да

A64m
29.05.2018
10:42:41
ну и не будут же они убирать открытые семейства

Index
29.05.2018
10:44:30
Добавить открытые функции может ?

kana
29.05.2018
10:46:00
Весь адхок останется через тайпклассы

A64m
29.05.2018
10:46:53
но тайпклассы с ассоциированными типами же

kana
29.05.2018
10:49:35
class Elem (a :: Type) where
elem :: Type
instance Elem [a] where
elem = a -- тут хрень конечно, нужны синглтоны для типов какие-то что ли
class Elem c => Collection c where
get :: c -> Maybe (elem @c)

Google

Yuriy
29.05.2018
10:53:51

kana
29.05.2018
10:55:45
Да без разницы вроде, просто меньше абстракций (ну то есть те же самые функции и тот же адхок что и раньше через классы, а не новый через семейства)

A64m
29.05.2018
10:58:54
не вижу особого смысла бороться с синтаксическими проявлениями ассоциированных типов. вот синтаксис отдельно стоящих семейств это адский ад, да

Pineapple
29.05.2018
10:59:29
А чем он плох?

IC
29.05.2018
11:01:28
https://tech.yandex.ru/dialogs/alice/doc/development-docpage/
- Алиса, что такое монады?

A64m
29.05.2018
11:01:29
вербозный
причем вербозный в каком-то неприятном смльном стиле кучи ключевых слов

Index
29.05.2018
11:03:30
Отдельно стоящие убить надо

Pineapple
29.05.2018
11:03:52
type/data instance Foo Bar = ... всего два слова. По моему нормально

IC
29.05.2018
11:04:03

Index
29.05.2018
11:04:05
Как это в Constrained type families описано

Pineapple
29.05.2018
11:04:22

A64m
29.05.2018
11:04:27
ну там для убивания посерьезнее основания чем плохой синтаксис

Index
29.05.2018
11:04:37
Это да
Вот недавно с @A64m_qb0 обсуждали что-то и наткнулись

Pineapple
29.05.2018
11:06:58
apartness? Ну и vector, боюсь сломается в unboxed части

A64m
29.05.2018
11:07:44
вектор же можно на ассоциированных типах сделать

Kirill
29.05.2018
14:22:19
@qnikst а зачем вы хаскель в wasm компиляете? Есть реальный клиент?

Google

A64m
29.05.2018
14:27:07
причем еще и размер получающегося васма так важен, что стоит того чтоб свои кодогенератор и рантайм писать
1) прочитал гигантский коммент от автора webghc величиной с блогпост
2) нажал F5
3) > EDIT: This comment apparently got posted in an intermediate state before I had finished writing it. People should reread

Alexander
29.05.2018
14:35:38
вроде нету

Kirill
29.05.2018
14:36:42
академики :)

Евгений
29.05.2018
14:39:53

A64m
29.05.2018
14:40:39
речь про разработку своего кодогенератора и рантайма для гхц

Alexander
29.05.2018
15:03:49

Евгений
29.05.2018
15:04:24
А

Yuriy
29.05.2018
15:06:12
@qnikst, почему ваши не обратили внимание на https://github.com/SPY/haskell-wasm? кажется, @irezvov дальше продвинулся

Alexander
29.05.2018
15:06:27
без понятия
чела, который пилил aeterus наняли он продолжил его тут пилить
а по тому дальше или нет я не компетентен, чтобы сравнить и что-либо сказать

A64m
29.05.2018
15:07:51
а почему не того, который webghc делает?

Alexander
29.05.2018
15:08:37
читая Readme того что в haskell-wasm написано я не вижу почему это об одном и том же

A64m
29.05.2018
15:10:01

Yuriy
29.05.2018
15:10:39
я тоже не разбираюсь, пусть @irezvov сам расскажет

Ilya
29.05.2018
15:11:32
Ща до работы доеду

Alexander
29.05.2018
15:13:17
вот судя по тому что чекбокснуто, похоже на то + интерпретатор?

Google

Alexander
29.05.2018
15:13:24
но я не шарю

Ilya
29.05.2018
15:14:28
Да, интерпретатор есть

Yuriy
29.05.2018
15:14:55
ghci?


Ilya
29.05.2018
15:20:30
не, интерпретатор WASM'a
вроде отстендапился
итого, haskell-wasm это действительно Language пакет в котором есть парсер текстового представления, сериализатор/десериализатор, интерпретатор и CodeGen API(как раз пытаясь его улучшить я вчера боролся с GHC в этом чатике)
изначально, как заявлено в ридми, у меня тоже была цель сделать WASM бекенд для GHC компиля Cmm в Wasm
но в какой-то момент я стал смотреть в пайплайн Idris'a и мне его подход к кодогенерации показался более разумным. По этому что бы не закапаться в кишках GHC я начал с кодогенерационного бекенда для Idris'a
https://github.com/SPY/idris-codegen-wasm
не смотря на то, что я потратил на него всего 2 недели он вполне себе даже работает. Есть поддержка на уровне рантайма строк и числовых операций, эмуляция стека. Почти готова сборка мусора
в будущем если всё же дойду до встраивания в GHC'шный пайплайн, я наверное буду компилировать STG в идрисоподобный байткод и переиспользовать тот же рантайм до какой-то степени
потому что Смм в своей архитектуре слишком сильно закаладывается на возможность прыгнуть в произвольное место или передать выполнение коду по указателю(такое WASM не умеет)
собственно вот. DHC упомянутый в Twig.io'шной статье кстати вроде собирались перейти на мою либу для кодогенерации судя по этой ише https://github.com/dfinity/dhc/issues/1
@qnikst а вот заменить binaryen на мою либу в asterius'e вполне здравая идея


Alexander
29.05.2018
16:10:18
я предложу
предложил

Ilya
29.05.2018
16:38:27
ну там что бы начать использовать надо зарелизить мою либу конечно, но если будет реально желание начать это делать, могу зафорсить этот процесс

Foo
30.05.2018
05:10:26
https://www.reddit.com/r/haskell/comments/8mxmmt/i_am_not_snoyjerk/

A64m
30.05.2018
07:52:31
тем временем https://ghc.haskell.org/trac/ghc/blog/ghc-8.4.3-released

Alexander
30.05.2018
08:42:25

Google

Alexander
30.05.2018
08:42:47
я тогда в приват отпишусь чего и как
в идеале он бы хотел переключиться но видимо позже

Timofey
30.05.2018
08:56:05
А подскажите какую-нибудь легковесную либу для работы с графами? Конкретно в моём случае - надо ориентированный граф без циклов распарсить из логов, дальше надо выдавать результаты а-ля "верни все рёбра и вершины, до которых можно дойти из такой-то вершины"

Denis
30.05.2018
08:57:28

Andy
30.05.2018
08:58:40
всем привет! по scotty есть 2 вопроса : 1) есть ли возможность low-level управления сокетом, или неким writer-ом - чтобы можно было сделать rate-limit и тп ?
2) не могу понять, как сделать некий post action после scotty-ного хендлера (но не одновременно, а после удачной записи последнего байта)
app = do
get "/test" $ do
file "sc.hs1"
liftIO $ putStrLn "TEST"
тут TEST пишется сразу после начала получения файла, а хочу - после (например, нужно сделать web-запрос на контрольный сервер)

Kirill
30.05.2018
09:03:10
это уже ближе к warp чем к scotty
(я про (1))

Andy
30.05.2018
09:04:00

Aleksey
30.05.2018
09:04:11
scotty, это уже application level. Нужно в warp лезть

Kirill
30.05.2018
09:04:20
это не его задачf

Denis
30.05.2018
09:04:29
servant тоже warp-ом сервится
копать в warp
2 можно сделать как wai-middleware

Timofey
30.05.2018
09:06:34

A64m
30.05.2018
09:24:46

Timofey
30.05.2018
09:37:54