https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
Эта книжка и в оригинале очень из семидесятых, мне она кажется малополезной.
Читать полностью…Просто неоднократно покупал переведённую литературу, но в итоге читал, периодически сверяясь с оригиналом.
Читать полностью…не все зависимости и не всегда пересобираются, отчего так - не пойму 🤷♀️ во всяком случае stack exec -- ghc-pkg describe
работает (если дважды пересобирать) и утверждает, что зависимости в зависимостях других пакетов ссылаются куда надо
у меня проект разбит на внутренние библиотеки, и это тот ещё прикол когда нужно прыгать от одной либки к другой
Читать полностью…hls кажется вообще в сколько-нибудь больших проектах скорее не работает чем наоборот
Читать полностью…была такая шутка про Slackware: в этом дистре есть менеджер зависимостей, только он вне компьютера
Читать полностью…прибивание base не говорит кабалу, какую версию ghc использовать
Читать полностью…как я понимаю, типичное использование кабала — фиксировать ghc в документации и CI, фиксировать пакеты через cabal-freeze или index-state
Читать полностью…Поднимал один толстенький старенький проект с 8.6.5 на 9.4, чтобы попрофайлить с -fprof-late, было это спустя небольшое время как он выходил, в основные пакеты только завезли поддержку, обошлось не без приключений
Пришлось часть зависимостей перенести на коммиты с гитхаба, которые уже поддерживали 9.4, но до хакаджа еще не добрались, одну зависимость пришлось форкнуть и самому довести поддержку нового кабала из-за используемого в этой зависимости препроцессора кабала. Несколько строк кода, после разбирательства какие там изменения в API кабала были, и все собралось и завелось
C кабалом очень легко было постепенно поднимать версии пакетов и постепенно поднимать версии ghc. До этого пользовался стэком и он запомнился мне просто ужасными ошибками, которые непонятно как интерпретировать и которые возникали от того, что ты хочешь одну версию какого-нибудь пакета поднять относительно снэпшота. Ручками управлять зависимостями и проще и приятнее показалось, чем использовать снэпшоты, которые еще ко всему мигрируют на новые версии невероятно долго, даже когда нет никаких физических ограничений собрать свой проект, чтобы поскорее попробовать какую-нибудь новую фичу компилятора
Потом (по крайней мере временно) отпинить версии пакетов, оставаясь все еще на GHC 8.10, и посмотреть, может ли кабал найти рабочий build plan. Если не может, то почему? Написать Hackage Trustees в спорт-лото?
Читать полностью…Я знаю, что можно пинить и использовать с кабалом. Вопрос про опыт/реалистичность миграции с типичного использования стека со стекеджем на типичное использование кабала с последним гхц
Читать полностью…А тут такое фундаментальное произведение, что я прямо побаиваюсь. Нужен совет.
Читать полностью…Товарищи! Я уверен вам всем известна книга "Компиляторы. Принципы, технологии и инструментарий" от Ахо. Так вот вопрос: насколько хорош перевод на русский(можно ли читать на русском или всё же брать оригинал)???
Читать полностью…разрешилось через двойную сборку: сначала без профиля, потом с профилем
Читать полностью…у нас например на стеке следующие грабли были:
- 9.2.5: профиль не собирается, бага гхц
- 9.2.7: HLS падает с другой багой гхц
если возможно, то лучше мигрировать сначала со стека на кабал, а потом уже поднимать версию компилятора
написать в документации «проект нормально собирается только с ghc 9.0»
Читать полностью…Ни разу так кабал не использовал.
Но видел как используют, в случае если проект - приложение, например.
С 9.6 особо нужды не было играться, крупные проекты с кучей зависимостей, в т.ч. старых, билдить также не приходилось. Но думаю, что уже должны были завести поддержку в основные пакеты и проблем собрать на нем должно быть минимум.
Со всякими migration guide'ами под рукой может быть придется в сорцы куда-нибудь залезть, но пойти небольшой контрибьют сделать обычно несложно при появлении новых версий и может быть даже довольно занятно, очень рекомендую
Фундаменательных барьеров я здесь не вижу, куча продакшна вокруг не использует ни стэк, ни стэкэдж. Классная ли это идея в данном конкретном случае - неведомо, надо пробовать.
Читать полностью…Потом мигрировать на GHC 9.0, затем на 9.2, затем на 9.4 и 9.6. Ну или настолько далеко, насколько позволит build plan.
Читать полностью…Я бы для начала переполз на кабал. Если сложный stack.yaml, то, возможно, попробовать автоматизировать миграцию при помощи https://hackage.haskell.org/package/stack2cabal
Читать полностью…Смешались кони, люди... Снэпшоты это стакадж, их можно использовать и с кабалом, а можно вообще не использовать (всё пинить вручную, если время разработчика бесплатное).
Читать полностью…