Vladislav
Отдельно стоящие убить надо
Алексей
type/data instance Foo Bar = ... всего два слова. По моему нормально
IC
Vladislav
Как это в Constrained type families описано
A64m
ну там для убивания посерьезнее основания чем плохой синтаксис
Vladislav
Это да
Vladislav
Вот недавно с @A64m_qb0 обсуждали что-то и наткнулись
Алексей
apartness? Ну и vector, боюсь сломается в unboxed части
A64m
A64m
вектор же можно на ассоциированных типах сделать
Kirill
@qnikst а зачем вы хаскель в wasm компиляете? Есть реальный клиент?
A64m
причем еще и размер получающегося васма так важен, что стоит того чтоб свои кодогенератор и рантайм писать
A64m
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
Alexander
вроде нету
Kirill
академики :)
Евгений
A64m
речь про разработку своего кодогенератора и рантайма для гхц
Alexander
Евгений
А
Cheese
@qnikst, почему ваши не обратили внимание на https://github.com/SPY/haskell-wasm? кажется, @irezvov дальше продвинулся
Alexander
без понятия
Alexander
чела, который пилил aeterus наняли он продолжил его тут пилить
Alexander
а по тому дальше или нет я не компетентен, чтобы сравнить и что-либо сказать
A64m
а почему не того, который webghc делает?
Alexander
читая Readme того что в haskell-wasm написано я не вижу почему это об одном и том же
Alexander
Cheese
я тоже не разбираюсь, пусть @irezvov сам расскажет
Ilya
Ща до работы доеду
Alexander
вот судя по тому что чекбокснуто, похоже на то + интерпретатор?
Alexander
но я не шарю
Ilya
Да, интерпретатор есть
Cheese
ghci?
Ilya
не, интерпретатор WASM'a
Ilya
вроде отстендапился
Ilya
итого, haskell-wasm это действительно Language пакет в котором есть парсер текстового представления, сериализатор/десериализатор, интерпретатор и CodeGen API(как раз пытаясь его улучшить я вчера боролся с GHC в этом чатике)
Ilya
изначально, как заявлено в ридми, у меня тоже была цель сделать WASM бекенд для GHC компиля Cmm в Wasm
Ilya
но в какой-то момент я стал смотреть в пайплайн Idris'a и мне его подход к кодогенерации показался более разумным. По этому что бы не закапаться в кишках GHC я начал с кодогенерационного бекенда для Idris'a
Ilya
https://github.com/SPY/idris-codegen-wasm
Ilya
не смотря на то, что я потратил на него всего 2 недели он вполне себе даже работает. Есть поддержка на уровне рантайма строк и числовых операций, эмуляция стека. Почти готова сборка мусора
Ilya
в будущем если всё же дойду до встраивания в GHC'шный пайплайн, я наверное буду компилировать STG в идрисоподобный байткод и переиспользовать тот же рантайм до какой-то степени
Ilya
потому что Смм в своей архитектуре слишком сильно закаладывается на возможность прыгнуть в произвольное место или передать выполнение коду по указателю(такое WASM не умеет)
Ilya
собственно вот. DHC упомянутый в Twig.io'шной статье кстати вроде собирались перейти на мою либу для кодогенерации судя по этой ише https://github.com/dfinity/dhc/issues/1
Ilya
@qnikst а вот заменить binaryen на мою либу в asterius'e вполне здравая идея
Alexander
я предложу
Alexander
предложил
Ilya
ну там что бы начать использовать надо зарелизить мою либу конечно, но если будет реально желание начать это делать, могу зафорсить этот процесс
t1db1t
https://www.reddit.com/r/haskell/comments/8mxmmt/i_am_not_snoyjerk/
A64m
тем временем https://ghc.haskell.org/trac/ghc/blog/ghc-8.4.3-released
Alexander
Alexander
я тогда в приват отпишусь чего и как
Alexander
в идеале он бы хотел переключиться но видимо позже
Timofey
А подскажите какую-нибудь легковесную либу для работы с графами? Конкретно в моём случае - надо ориентированный граф без циклов распарсить из логов, дальше надо выдавать результаты а-ля "верни все рёбра и вершины, до которых можно дойти из такой-то вершины"
Зигохистоморфный
KLH
всем привет! по scotty есть 2 вопроса : 1) есть ли возможность low-level управления сокетом, или неким writer-ом - чтобы можно было сделать rate-limit и тп ?
KLH
2) не могу понять, как сделать некий post action после scotty-ного хендлера (но не одновременно, а после удачной записи последнего байта)
app = do
get "/test" $ do
file "sc.hs1"
liftIO $ putStrLn "TEST"
тут TEST пишется сразу после начала получения файла, а хочу - после (например, нужно сделать web-запрос на контрольный сервер)
Kirill
это уже ближе к warp чем к scotty
Kirill
(я про (1))
Aleksei (astynax)
scotty, это уже application level. Нужно в warp лезть
Kirill
это не его задачf
Denis
servant тоже warp-ом сервится
Denis
копать в warp
Denis
2 можно сделать как wai-middleware
Timofey
A64m
Cheese
Зигохистоморфный
algebraic-graphs
я решил это не подсказывать) ибо довольно большая либа
Cheese
A64m
подсказал самую неудобную зато
Timofey
А раз пошла такая пьянка, то из какого представления потом будет проще всего сгенерить svg? Пока вместо графа у меня самопальное дерево, которое я потом скармливаю graphviz
Евгений
graphviz-либа прибита в fgl
A64m
Kirill вы придумали уже, как искать пакет по модулю?
а то у меня появилась идея
stack exec ghc-pkg -- find-module Linear
Kirill
ну разовый кейс разрешился