Yura
сделать cabal new-build
Yura
оно что-то странное мне выдавало пока артефакты не поудалял
Leonid 🦇
чем стек удобнее cabal new* ?
Alexander
хотя он порой упоротый
Yura
Alexander
тем что не надо никого в этом убеждать
Leonid 🦇
фильтруй dist dist-newstyle из сорцов
Alexander
я не пробовал для проекта над которым работаю new-build
Yura
ну stack умеет нормально настраивать env с помощью никса
Alexander
да и задолбаюсь .freeze генерировать точный
Yura
т.е. он делает какой-то изолированный env
Alexander
надо будет утилиту писать чтобы на основе стекана делало
Yura
с nix-ом это сделать можно, но это надо эти заклинания знать :(
Kirill
да какая магия
Maxim
Kirill
тупо nix-shell
Leonid 🦇
тупо nix-shell
нет нет, он там что-то делает! И ВСЁ РАБОТАЕТ ИЗКАРОПКИ
Yura
ну понятно что в сорцах посмотреть можно, но stack это из коробки умеет
Leonid 🦇
ну вот
Kirill
ну в том и дело что делает
Kirill
но не с фиг
Kirill
но из коробки
Leonid 🦇
магию делает же
Yura
бля
Kirill
опять же к вопросу юзабилити
Yura
ты спросил почему удобнее- оно работает и не надо разбираться
Leonid 🦇
Магниты^W Программы как они вообще работают?
Yura
но когда у тебя 3 разных проекта, 1 либа и 2 exe в разных папках stack - это пиздец
Yura
он стейт глобально хранит
Yura
и призодится постоянно stack clean звать
Yura
но stack любит большие репы со всем сразу
Kirill
монорепо?
Yura
угу
Leonid 🦇
а cabal new-* просто работает
Yura
ну вот поробуй 3 разных stack.yaml в 3х проектах, 2 зависят из одного (ссылки через пути на ФС). Меняешь либу. Запускаешь stack build в 1м зависимом проекте.
Yura
во втором зависимом проекте, да и в самом проекте либы stack build не работает
Leonid 🦇
мне кажется что разные проекты не должны зависить от либы по пути на фс, иначе это не разные проекты
Kirill
"меняешь либу" - код чтоль правишь?
Leonid 🦇
ты же не будуешь разные проекты обновлять одновременно, если они разные
Kirill
+1 про не должны
Kirill
какой-то абъюз концепции проекта
Alexander
stack.yaml как и cabal.project - одна штука на проеут
Alexander
который может быть из многих пакетов
Alexander
каждый пакет может быть сам по себе проектом, но топлевел проект это не волнует и ничего не наследуется
Alexander
исключение разве что Базель, там вроде можно наследовать и включать подпроекты
A64m
я пробовал, кстати, переводить со стека небольшой проект с сотнями транзитивных зависимостей без единого указания версий в кабале и без всяких тулов которые версии из стекового снапшота берут, нью билд построил билдплан и для 8.2 и для 8.4 (но там из-за полугрупп не сбилдилось), не с дефолтным значением этих самых, которых ему все время не хватает-то, конечно.
A64m
как-то просто все прошло, раньше вроде с этим тяжелее было
Yura
A64m
да, я ужаснулся сколько в это труда вложено. причем тогда 8.4 совсем новый был
Alexander
евил тейковер
Alex
Народ
Alex
У меня такой вопрос
Alex
Есть дата с тремя филдами и все стринги (не знаю как это правильно называется тут)
Alex
Если я хочу их сравнивать
Alex
То мне нужно пилить инстанс Equal
Alex
верно?
Alex
Или можно просто сделать deriving
Maxim
можно
Alex
Тогда еще такой вопрос: можно ли проверить пустой ли список данного типа без определения этого инстанса?
Alex
И если да, то как?
Alexandr
Товарищи, сорри за оффтоп. Но мы придумали тут задачку по фану одну. Пока есть три разных решения. Интересно сможете ли вы придумать что нибудь поинтереснее. Нужно написать функцию проверки числа 6. Которая будет возвращать истину если это шестерка и ложь если нет. Нельзя использовать константы, только операции над числом и само число. Функции и библиотеки в теле которых есть константы, а так же дефайны тоже нельзя.
Cheese
kosc
Alexandr
Cheese
да
Alexandr
Отлично!
Cheese
не спеши. если переводить в нормальные числа, понадобится хотя бы 0
Cheese
возможно, это как-то можно обойти
Alexandr
lambda x: x==x**(x-x)+x**(x-x)+x**(x-x)+x**(x-x)+x**(x-x)+x**(x-x)
Alexandr
В твиттере кинули такое решение
Alexandr
Не знаю насколько валидно
Cheese
это точно не Хаскель
A64m
Alexander
таким образом получили константу
Alexander
можно с тем же успехом x/x написать, если целочисленное
Alexander
и 6 раз сложить и сравнить