Cheese
и что мёрж работает вместе со ссылками?
Aleksei (astynax)
ага
Aleksei (astynax)
>>> print(json.dumps(yaml.load(open("foo.yaml")))) {"_foo": {"foo": "bar", "bar": "baz"}, "qux": {"foo": "bar", "bar": "baz", "doo": "doh"}} питон нормально мержит по ссылке
Aleksei (astynax)
Хаскель - то же самое выдаёт. На этом принципе работает реюз в hpack
Cheese
о, и Раст пуллреквестируй
Cheese
да, я знаю, на Мёрже много чего работает, например, наследование конфигов в Есоде
Aleksei (astynax)
Вырвигланая синтаксически фича, но полезная
Cheese
кстати, о наследовании. было бы здорово проверить, что при мёрже одинаковые ключи правильно заменяются, то есть так, как это ожидается от наследования
Aleksei (astynax)
ага, тоже об этом подумал
Aleksei (astynax)
Кстати, для YAML нет тестсьюта на соответствие спеке?
Aleksei (astynax)
Для ToML есть, например
Cheese
я не видел
Leonid 🦇
у ямла есть одно хорошее свойство, JSON - валидный ямл, в nix делаешь builtin.toJson и конфиг готов
Leonid 🦇
а все нормальные люди могут страдать с любимым ямлом
Aleksei (astynax)
Можно ещё ямл из dhall получать :)
Cheese
а можно оставить dhall
Leonid 🦇
можно, но зачем?
Cheese
чтобы не страдать с ямлом
Aleksei (astynax)
dhall типизированный же! :)
Alexander
перетипизированный
Aleksei (astynax)
да неособо. Вполне нормальная штука
Leonid 🦇
объясни это админам которые будут "деплоить" твою поделку
Alexander
как это не особо? полиморфизма нормального нету, row полиморфизма нету
Alexander
для того чтобы сделать тупой list нужно 3 файла создать
Alexander
У - Удобство
Aleksei (astynax)
Нужна просто нормальная прелюдия для dhall :)
Alexander
ну если для админов это сведется к dhall config которые они в свои ансибли добавят
Aleksei (astynax)
объясни это админам которые будут "деплоить" твою поделку
Это же просто текстовый файл. Деплоится как все остальные текстовые конфиги :)
Alexander
вот кстати помните хикки про его мейби
Aleksei (astynax)
У Хикки EDN головного мозга :)
Alexander
вон к dhall это относится на все 100%
Alexander
ну он ругал, типизированные языки за optional fields плохие и т.п.
Alexander
вот к dhall это относится
Alexander
если нужно структурку с опциональными полями или т.п. то ты будешь все эти поля писать через maybe
Alexander
сделать метод который работает с любой структурой у которой есть bar типа Foo тоже нельзя
Alexander
может не всегда и надо, но когда я решил попробовать dhall я сразу столкнулся с пачкой невозможно и несколькими решениями, которые кроме как прыжки через горящие кольца классифицировать сложно
Denis
хикки роу-полиморфизм не осилил
Alexander
в dhall его тоже не осилили
Alexander
хотя казалось бы, он там смотрится прекрасно
A64m
по моему, Гонзалес не столько думал, что должно быть в языке для конфигов, сколько о том, куда приткнуть свой игрушечный язык. ну, для конфигов сойдет - решил Гонзалес
Aleksei (astynax)
Игрушечный язык у него был и до этого - Morte
A64m
так я про то и пишу что был
A64m
а надо чтоб не было, а была задача язык для конфигов сделать
Влод
всё, теперь гонзалес такое же зло как крис ален?
Denis
пытался надампить инфы по багу в GHC и нашел два других
Denis
это ноябрь проклятый чтоли
Leonid 🦇
у вас поди -XTypeInType
A64m
https://twitter.com/rufuse/status/927237692873732097 что может пойти не так?
Denis
ну это не в проде траблы
Leonid 🦇
TH дерайвинг линз это эксперементальные фичи?
Denis
а вообще я свое мнение не изменил, если в проектах не использовать новые штуки, то их никто не обкатает и стабильности у них не добавится
A64m
Да мнение-то правильное, конечно.
Leonid 🦇
тру
A64m
Речь то не о том, что это неправльно, а о том, что при таком подходе странно чего-то другого ожидать
Denis
ну я и про старые штуки, я вот новые баги заметил сейчас на 8.0.2
Denis
я подозреваю что те же мелкие проблемы и на 7 есть
parket
а вообще я свое мнение не изменил, если в проектах не использовать новые штуки, то их никто не обкатает и стабильности у них не добавится
Есть хорошее правило. Не более одной экспериментальной фичи на боевой проект. Я не говорю про игрушки, конечно.
Denis
а если в новой версии компилятора 10 новых фич?
Leonid 🦇
по одной на проект! у тебя что, 10 проектов нет?
A64m
ну ничего, скоро будет первый в современной истории GHC релиз без фич
A64m
выдающееся достижение новых скаргокулченных процессов
Denis
я согласен на пару релизов с одними багфиксами
A64m
ну, баги-то не от одних фич бывают, там куча всяких переделок, так что багов должно быть как обычно
Denis
я не утверждал что они от новых фич, тащемта
Denis
просто на глаз как-то много находится последнее время
parket
а если в новой версии компилятора 10 новых фич?
Не используй новый компилятор :)
Alexander
не, как раз новый использовать надо, хоть для чего-то
Alexander
иначе все эти баги придут, когда он уже будет считаться старым
Alexander
и вот тогда их фиксить не факт что будут, если в новом например треть пофикшено
Alexander
и сиди и думай, переходить на новый где пофикшено но возможно есть новые
Alexander
или страдать
A64m
я представляю, два года фичи не принимают, все имплементации сгнили, их авторы защитились/умерли/женились
A64m
да что значит не факт, их в принципе в старых версиях не фиксят
A64m
хотябы только из-за багфиксов уже придется новый использовать
Denis
так, один баг походу уже починили
A64m
ну и сейчас вроде число версий, которые библиотеки поддерживают побольше чем раньше, но все равно, сидеть на старой версии - не использовать новые библиотеки, а в библиотеках тоже баги фиксят только в новых
A64m
нет, отстать от актуального релиза ghc - это смерть