Зигохистоморфный
• Couldn't match kind ‘* -> *’ with ‘*’
When matching the kind of ‘Fix’
Expected type: Fix (MyFreeF [] a)
Actual type: MyFree [] a
• In a stmt of a 'do' block: x <- liftF' [10, 20]
In the expression:
do { x <- liftF' [10, 20];
y <- liftF' [30, 40];
return $ x * y }
In an equation for ‘e’:
e = do { x <- liftF' [10, ....];
y <- liftF' [30, ....];
return $ x * y }
A64m
уже появились настальгирующие по hugs (нет, он ни в чем не лучше ghci, и не был никогда)
Anonymous
ложь
Зигохистоморфный
чот не могу понять как это решить
Dmitry
а как же friendly error messages?
Anonymous
он под андроидом запускается
Dmitry
примеров правда никто никогда не приводит
Anonymous
в термуксе
Зигохистоморфный
A64m
это в хагсе-то? во всех имплементациях ФЯ что я видел ошибки еще хуже чем в ghc
A64m
к счастью, то что могло бы давать особо веселые ошибки на них обычно просто не написать, но в хагсе-то много чего написать можно
A64m
@xgrommx не знаю, я особо не вник.
A64m
ОМГ теперь кто-то рассказывает, что хагс оказывается интегрировал редактор и интерпретатор, причем пльцами показывает редактор над, видимо, окном репла
A64m
нет, не интегрировал
A64m
такая штука как он описывает была например для элис (это такой СМЛ)
A64m
но хагс просто вызывал редактор по команде так же как и ghci
A64m
Волков рассказывает про hasql, мол в моих бенчмарках 50% ГЦ, я открываю репозиторий на гитхабе, смотрю параметры которые он ртс передает
A64m
ну естественно, настройки ГЦ дефолтные
A64m
ну так что еще ожидать при дефолтных настройках-то?
Кабачок
Бле, ну так это хаскель, а не жаба какая-нибудь, чтобы гц то тюнить, вот ещё.
Влод
A64m
-A64m -qb0 -n4m очевидно же.
A64m
по крайнем мере до 8.2 так, начиная с него балансировка и чанки сами включатся если -A64m включить
A64m
@greenest_pig в жаве они по умолчанию сносные, про ghc такого не скажешь
Alexander
@A64m_qb0 разве чанки тоже? вот -qb0 - да
A64m
@qnikst https://git.haskell.org/ghc.git/commitdiff/85e81a850a3e79d965e18f267a0e0b1c4bc69fae
A64m
в комментариях вот к этому тикету https://ghc.haskell.org/trac/ghc/ticket/9221 история мееедленного и поэтапного торжества разума над безумием дефолтных настроек (до полного там еще далеко)
Cheese
Leonid 🦇
@A64m_qb0 обоснуй -qb0
Alex
надо допилить идрис до состояния когда там можно будет тюнить тоталити чекер
Alex
а то один гц уже как то скучно
Leonid 🦇
из-за большого nursery -n4m?
Denis
в TH по Name как-нибудь можно распознать тайп синоним? Ничего такого не вижу, походу не умеет с ними работать.
Cheese
Alexander
ну и если у тебя -A64m
Alexander
будут у тебя это один ядро разбирать или все
IC
@lonokhov -qb0 позволяет не тратить время на синхронизацию
IC
есть ли порог ядер/объёмов, когда применение qb0 перестаёт быть выгодным? 🤔
Anonymous
что будет если заменить в хаскеле Hask на Cohask?
IC
@anarchostatist лисп
Alexander
@icrbow эм?
Alexander
без -qb0 один работает все ждут
Alexander
с -qb0 все работают синхронизируясь при этом
Alexander
затрат на синхронизацию в -qb0 строго больше : ]
A64m
нет, без qb0 они все равно все работают, только балансировка плохая
Alexander
на всех поровну?
Alexander
а не из пула брать?
Leonid 🦇
ну и я так понимаю -qg1 теперь вреден
A64m
при малых A вреден, но включен по умолчанию. При больших A полезен при включенной балансировке, но по умолчанию она выключена.
A64m
получаются такие вот вилы Мортона, при дефолтных настройках выиграть меняя один A невозможно.
A64m
@qnikst не уверен что поровну. В какие чанки капабилити набрала для аллокации, те один поток ГЦ трейсит, вроде так.
Alexander
о, ваще ужасно
Alexander
это ж почти гарантировано, что одна capability наберёт больше других
A64m
но я не уверен на этот счет
A64m
показатели Parallel GC work balance привда без qb0 обычно ниже плинтуса, как они этого добиваются я помню плохо
Denis
спасибо
A64m
отлично, обсуждение первого языка для изучения фп поползло на реддит.
A64m
мой личный анекдотический опыт с пурскриптом: когда я переписывал небольшой хеллоуворлд на хаскеле на другие ФЯ (для бенчмарков и определения мест где требуется расставление костылей) я быстро и без особых проблем переписал его на ocaml, f#, alice, idris и даже scala, который и фя-то не назовешь. Но пурскриптовая версия так и не заработала - вышибает стек и привет.
Anonymous
Anonymous
но ок
Кабачок
F# какой-то уж очень ограниченный
Anonymous
Чего не скажешь о F*
Anonymous
А F* сырой
Кабачок
Пишешь:
let const x _ = x
let const' _ x = x
let curry f x y = f (x, y)
let uncurry f (x, y) = f x y
А вот так уже нельзя:
let fst = uncurry const
Кабачок
И сразу как-то скучно становится.
A64m
система типов у F# самая убогая из перечисленных, но хоть есть какие-то элементарные ФП удобства вроде нормальнго сранения, не слишком страшного ПМ и сносного вывода типов, чег в скале, например нету
Зигохистоморфный
A64m
@xgrommx я их и использовал
A64m
вероятно, но с этим имплементация будет самая костыльная, из работающего по костыльности чемпион смл из-за худших возможностей по завязыванию узлов
A64m
Так что для обучения начинающего я бы не рекомендовал
A64m
вообще строгий язык с хаскельным синтаксисом (т.е всякие where и let rec по умолчанию) уже минное поле
A64m
а тут еще и имплементаация совсем сырая, даже наколеночный haste так весело стек не вышибает на каждом шагу
Alexander
почему dhall считают хорошей вещью?
Leonid 🦇
Потому что Гонзалес
Vladislav
Потому что Гонзалез
Alexander
страннота
A64m
он страшно выглядит и требует много аннотаций типов и вообще какого-то странного бойлерплейта
A64m
но сама концепция-то нормальная