Просуммирую опыт.

Apr 25, 2019 00:13

Современное состояние дел с программированием на Haskell чрезвычайно и требует скорейшего вмешательства высших сил ( Read more... )

Хаскель

Leave a comment

vshabanov April 25 2019, 16:15:00 UTC
Я до сих пор работаю по старинке. Все пакеты ставлю глобально (cabal v1-install) из Makefile-а (который заодно умеет и GHC с cabal-ом поставить) и использую обычный ghci без cabal repl. Обновляю раз год, после выхода багфиксов к очередному релизу GHC ( ... )

Reply

helvegr April 25 2019, 20:01:11 UTC
> Получается какое-то безумие -- есть верхняя граница зависимостей -- не могу использовать библиотеку с новыми версиями её зависимостей. Нет границы -- опять-таки не могу использовать библиотеку.

--allow-newer не помогает?

Reply

vshabanov April 26 2019, 10:26:38 UTC
Спасибо, не знал про --allow-newer. По-идее, должно помогать.

Reply

thesz April 25 2019, 20:40:21 UTC
А представь себе, что есть какой-то тест к библиотеке и ты можешь при её установке сказать "мне нужны версии, на которых проходит вот этот тест".

Тогда условный "network 3.0" отвалится автоматически, без правки границ.

Reply

vshabanov April 26 2019, 10:42:21 UTC
Что-то мне подсказывает, что сложность сборки может стать экспоненциальной. Хотя можно постепенно, по мере загрузки в Hackage, собирать пакеты и запоминать рабочие/нерабочие сочетания версий. Тогда получится некий автоматический Stackage. Кто бы только всё это сделал ;)

Можно было бы это даже без тестов делать -- загрузил кто-то network-3.0 -- собрали пакеты, которые от него зависят и автоматически добавили к ним границы, если не собираются. Stackage, насколько я понимаю, делает автоматическую сборку и сообщает желающим, что их пакет поломан. Но автоматически границы зависимостей не редактирует.

Reply

thesz April 26 2019, 10:50:18 UTC
Да она и сейчас такая, если что. Просто редко вылезает.

Вот пример: http://0install.net/solver.html

Управление пакетами в SUSE тоже с SAT solver: https://doc.opensuse.org/projects/satsolver/11.4/

Reply

helvegr April 26 2019, 15:24:55 UTC
> загрузил кто-то network-3.0 -- собрали пакеты, которые от него зависят и автоматически добавили к ним границы, если не собираются

hackage matrix builder в светлом будущем должен научиться так делать

Reply


Leave a comment

Up