A64m
постараюсь разобраться 👍 а чем package/lens отличается от package/generic-lens ? если в двух словах. Для человека, который ни с тем, ни с тем не знаком
в generic-lens линзы для использования с библиотекой lens которые работают, например, с полем с каким-то именем, с любым рекордом, в котором есть поле с таким именем. то же с именами конструкторов, номерами полей и параметров, полями определенного типа и т.д.
A64m
Инфраструктура на высоте
иде-релейтед инфраструктура для хаскеля, упрощенно говоря, отсутствует
Maxim
Да я не только про иде, сборка тоже так себе. Стэк этот блин
A64m
стек был получше в первые годы, когда они старались популярными стать, теперь он не особо развивается, глюкавый (и с этим ничего не делают), отстает от гхц-кабала(как библиотеки) на месяцы (в случае модулей, на годы)
Maxim
Я наверное в один момент окончательно от этого устану и возьму никс
A64m
там тоже настрадаться придется
Maxim
Что стоит знать прежде чем попробую?
A64m
я в нем не разбираюсь, я к тому что там все равно придется использовать какой-то хаскельный билд-тулинг (кабал инстол тот же) чтоб инкрементально компилять
Alexander
Стоит знать, что в чатике есть люди, склонные драматизировать
Maxim
У никса есть какая-то интеграция со стаком
Maxim
Может вместе они будут лучше
A64m
ну она для того чтоб нехаскельные зависимости никсом ставить
Maxim
Меня пока больше всего бесит, что какой-то пакет ломается на ровном месте и приходится удалять стек ворк
Maxim
Нет бы пересобрать только что сломано и от него зависящие
Maxim
А 200 зависимостей, среди которых плюсня, у меня долго собираются
Cheese
можно удалять не весь stack-work, а по частям
Cheese
200 зависимостей должны быть не в stack-work, а в глобальном ~/.stack (который тоже можно убивать по частям)
Alexander
А зачем столько зависимостей?
Alexander
Что они делают для проекта?
Maxim
Кажется как-то так: делаю гит пулл, какая-то зависимость поменяла версию и пересобралась, а что-то установленное с ней не совместимо
Maxim
Что они делают для проекта?
Я вместе с транзитивными считаю
Maxim
Все что собирает стек короче
Cheese
А зачем столько зависимостей?
200 зависимостей — вполне нормально для среднего проекта. это же включая транзитивные
Maxim
А как грохать частями?
Alexander
Наверное, нам на проекте очень везет.
Maxim
Допустим у меня стеком собран lens и он сломался. Что удалять?
Maxim
lens просто для примера
A64m
А зачем столько зависимостей?
это шутка что-ли? какой-нибудь сервис на хаскеле будет от сотен пакетов зависть просто чтоб привет мир отвечать
Maxim
Там же ещё какой-то package db, нельзя наверное просто удалить
Cheese
А как грохать частями?
что именно сломалось? вываливается сообщение про какой-то конкретный файл?
Maxim
что именно сломалось? вываливается сообщение про какой-то конкретный файл?
У меня сейчас нет под рукой сообщений) обычно при линковке финального бинарника не находится какого-то символа где-то
undefined
Хех, hie, как никто другой помогает хасклю избежать успеха
Cheese
У меня сейчас нет под рукой сообщений) обычно при линковке финального бинарника не находится какого-то символа где-то
да, там обычно написан конкретный файл .so, можно грохнуть его, если не поможет, то каталог уровнем выше, потом ещё выше... но у меня такая ошибка линковки возникала только тогда, когда предыдущая сборка была убита ^C, то есть если не убивать сборки, то и проблем не должно быть
undefined
Avoid success at all cost - глобальный мем же
Maxim
Если убить конкретную so то стек корректно пересоберет её?
Cheese
Если убить конкретную so то стек корректно пересоберет её?
её или каталог, её содержащий. в общем, проблема уровня 1 пакета, а не 200
undefined
почему?
Потому что людям как-то сложновато его собрать и заставить работать?
Кирилл
её или каталог, её содержащий. в общем, проблема уровня 1 пакета, а не 200
а не проще stack exec -- ghc-pkg unregister --force <имя сломанной либы>
Кирилл
а потом анрегистерить остальное, что зависит от этой либы
Dmitry
Потому что людям как-то сложновато его собрать и заставить работать?
ну, мне на днях удалось без проблем на Ubuntu 16.04 поставить через stack --stack-yaml=stack-8.2.2.yaml installработает, радует
Alexander
со стеком clean --deep решает почти все проблемы, но это долго
Maxim
Ну так это же стек-ворк сносит
Maxim
И потом все с нуля собирать
Alexander
https://github.com/nmattia/snack
Alexander
инкрементальная сборка с никсом
Alexander
не тестилась на реальных больших проектах
Maxim
Вообще счастье!
Maxim
Перекачивать гхц ещё
Alexander
гхц вроде оставляет
Alexander
ты уже с серокел же?
Alexander
почему там никто не оторвётся и не сделаете pair настройку окружения
ds
А подскажите, в Elm есть bigdecimal или что-то подобное?
undefined
ну, мне на днях удалось без проблем на Ubuntu 16.04 поставить через stack --stack-yaml=stack-8.2.2.yaml installработает, радует
Так-то и у меня все собирается, но за последние пару дней уже второй человек говорит "да ну его нафик", и я прекрасно понимаю почему.
Dmitry
я пока не понял 😏
Alexander
Pair?
вместе собраться или hangout/whatever + ssh
Alexander
и насироить
Nikolay
Если рассматривать всевозможные экземпляры класса лист, как объекты, а функции над ними как стрелки и т.д. это является категорией ?
Nikolay
Я сейчас читаю про функтор. Функтор отображает категорию в категорию. Вот и пытаюсь понять, если у меня определен функтор для листа, то что является категориями.
Oleg
Если рассматривать всевозможные экземпляры класса лист, как объекты, а функции над ними как стрелки и т.д. это является категорией ?
Если рассматривать любой подкласс всех типов, функции на нём будут образовывать категорию.
Nikolay
Если функции образуют категорию, то что в ней морфизы?
Ilya
Я сейчас читаю про функтор. Функтор отображает категорию в категорию. Вот и пытаюсь понять, если у меня определен функтор для листа, то что является категориями.
функтор "список" отображает объекты a из Hask в объекты [a] из Hask, и стрелки a->b из Hask в стрелки [a]->[b] из Hask. То есть это функтор Hask -> Hask (эндофунктор)
Oleg
Если функции образуют категорию, то что в ней морфизы?
Объекты вторичны в определении категории, МакЛейн говорит их можно выкинуть вообще. Так что именно правильный класс морфизмов с правильной композицией образует категорию
Nikolay
Hask .как его следует понимать?
Oleg
в гугле всё есть
Он там найдёт, что Hask не категория и обидится
кана
морфизм f это морфизм между чем и чем, если объектов нет
Proof:
объект — тождественный морфизм
Oleg
морфизм f это морфизм между чем и чем, если объектов нет
Ну самое начало маклейна. Так как объекты один к одному сопоставляются с айдентити морфизмами, можно считать, что у тебя есть класс морфизмов и функции dom и cod, возвращающие морфизмы из этого выделенного подкласса