Haskell: различия между версиями
Леонид (обсуждение | вклад) Нет описания правки |
Леонид (обсуждение | вклад) Нет описания правки |
||
| Строка 23: | Строка 23: | ||
В версии X.Y.Z число X.Y будем называть мажором, а Z - релизом. | В версии X.Y.Z число X.Y будем называть мажором, а Z - релизом. | ||
В Сизифе может быть произвольное число мажорных релизов компилятора, причём установленных в системе параллельно (они в общем никак никому не мешают, только возможны периодические FTBFS на этапе создания документации | В Сизифе может быть произвольное число мажорных релизов компилятора, причём установленных в системе параллельно (они в общем никак никому не мешают, только возможны периодические FTBFS на этапе создания документации. ). | ||
Основной пакет с компилятором именуется следующим образом: <code>ghc{мажор}</code>, т.е. для <code>GHC</code> 9.6.6 пакет будет называться <code>ghc9.6</code> (так же и gear репозиторий) | Основной пакет с компилятором именуется следующим образом: <code>ghc{мажор}</code>, т.е. для <code>GHC</code> 9.6.6 пакет будет называться <code>ghc9.6</code> (так же и gear репозиторий) | ||
Версия от 16:55, 6 мая 2025
Небольшие заметки по Haskell/GHC в Сизифе
Вводные термины
Haskell - чистый функциональный язык программирования общего назначения.
GHC - на данный момент основной и самый продвинутый компилятор Haskell.
cabal - менеджер пакетов для Haskell. Так же называется расширение файлов с метаинформацией о пакете. Непосредственно запускаемую программу cabal для большей ясности будем называть cabal-install (по имени пакета)
Текущее состояние дел
В Sisyphus собрана достаточно актуальная (на 2025 год) версия компилятора GHC - 9.6.6 и cabal-install 3.14.2.0
Это два определяющих инфраструктуру пакета, их сборка происходит в режиме бутстрапа (см. статью Haskell/GHC)
Версионирование GHC
Политика наименования пакетов с GHC следующая:
В версии X.Y.Z число X.Y будем называть мажором, а Z - релизом.
В Сизифе может быть произвольное число мажорных релизов компилятора, причём установленных в системе параллельно (они в общем никак никому не мешают, только возможны периодические FTBFS на этапе создания документации. ).
Основной пакет с компилятором именуется следующим образом: ghc{мажор}, т.е. для GHC 9.6.6 пакет будет называться ghc9.6 (так же и gear репозиторий)
Сборка пакетов
Среди всех мажоров компилятора выделяется один - "стабильный". Он ставится при помощи метапакета ghc. Его же и следует (но не обязательно) использовать для сборки пакетов.
RPM макросы находятся в rpm-build-haskell (-vendored для статически слинкованных)
См. статьи Haskell/RPM и Haskell/Vendored
Наименование пакетов
Запускаемые программы, написанные на Haskell, должны называться просто по апстримному наименованию. Например alex или cabal-install.
Библиотеки называются следующим образом: ghc{мажор}-{название_библиотеки}, в случае сборки библиотеки со "стабильным" GHC библиотеку следует называть ghc-{название_библиотеки}
Основные репозитории
- Текущие мажоры GHC:
- ghc9.6 - стабильный
- Метапакет - ghc
