Haskell: различия между версиями
Леонид (обсуждение | вклад) Нет описания правки |
Леонид (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
[[category:haskell]] | [[category:haskell]] | ||
{{Шаблон:ОбновляемаяСтатья}} | {{Шаблон:ОбновляемаяСтатья}} | ||
Небольшие заметки по <code>Haskell/GHC</code> в Сизифе | Небольшие заметки по <code>Haskell/GHC</code> в Сизифе | ||
Строка 14: | Строка 13: | ||
= Текущее состояние дел = | = Текущее состояние дел = | ||
В Sisyphus собрана достаточно актуальная (на 2025 год) версия компилятора GHC - 9.6. | В Sisyphus собрана достаточно актуальная (на 2025 год) версия компилятора GHC - 9.6.7 и cabal-install 3.14.2.0 | ||
Это два определяющих инфраструктуру пакета, их сборка происходит в режиме бутстрапа (см. статью [[Haskell/GHC]]) | Это два определяющих инфраструктуру пакета, их сборка происходит в режиме бутстрапа (см. статью [[Haskell/GHC]]) | ||
Строка 24: | Строка 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 репозиторий) |
Версия от 11:06, 9 июня 2025
Небольшие заметки по Haskell/GHC
в Сизифе
Вводные термины
Haskell - чистый функциональный язык программирования общего назначения.
GHC - на данный момент основной и самый продвинутый компилятор Haskell
.
cabal - менеджер пакетов для Haskell
. Так же называется расширение файлов с метаинформацией о пакете. Непосредственно запускаемую программу cabal
для большей ясности будем называть cabal-install
(по имени пакета)
Текущее состояние дел
В Sisyphus собрана достаточно актуальная (на 2025 год) версия компилятора GHC - 9.6.7 и 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