Haskell

Материал из ALT Linux Wiki
50px-Gnome globe current event.png
Данная статья периодически обновляется.
Последнее обновление
16:55 06 мая 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:
  • Метапакет - ghc

Подробнее