Haskell: различия между версиями
м (→современный {{pkg|cabal}}: typo) |
Леонид (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
[[category:haskell]] | [[category:haskell]] | ||
{{Шаблон:ОбновляемаяСтатья}} | |||
Небольшие заметки по <code>Haskell/GHC</code> в Сизифе | |||
== Вводные термины == | |||
'''Haskell''' - чистый функциональный язык программирования общего назначения. | |||
'''GHC''' - на данный момент основной и самый продвинутый компилятор <code>Haskell</code>. | |||
'''cabal''' - менеджер пакетов для <code>Haskell</code>. Так же называется расширение файлов с метаинформацией о пакете. Непосредственно запускаемую программу <code>cabal</code> для большей ясности будем называть <code>cabal-install</code> (по имени пакета) | |||
= Текущее состояние дел = | |||
В Sisyphus собрана достаточно актуальная (на 2025 год) версия компилятора GHC - 9.6.7 и cabal-install 3.14.2.0 | |||
Это два определяющих инфраструктуру пакета, их сборка происходит в режиме бутстрапа (см. статью [[Haskell/GHC]]) | |||
= Версионирование GHC = | |||
Политика наименования пакетов с <code>GHC</code> следующая: | |||
В версии X.Y.Z число X.Y будем называть мажором, а Z - релизом. | |||
В Сизифе может быть произвольное число мажорных релизов компилятора, причём установленных в системе параллельно (они в общем никак никому не мешают, только возможны периодические FTBFS на этапе создания документации. ). | |||
Основной пакет с компилятором именуется следующим образом: <code>ghc{мажор}</code>, т.е. для <code>GHC</code> 9.6.6 пакет будет называться <code>ghc9.6</code> (так же и gear репозиторий) | |||
= Сборка пакетов = | |||
Среди всех мажоров компилятора выделяется один - "стабильный". Он ставится при помощи метапакета [https://packages.altlinux.org/ru/sisyphus/srpms/ghc/ ghc]. Его же и следует (но не обязательно) использовать для сборки пакетов. | |||
RPM макросы находятся в <code>rpm-build-haskell</code> (<code>-vendored</code> для статически слинкованных) | |||
См. статьи [[Haskell/RPM]] и [[Haskell/Vendored]] | |||
== | = Наименование пакетов = | ||
Запускаемые программы, написанные на <code>Haskell</code>, должны называться просто по апстримному наименованию. Например <code>alex</code> или <code>cabal-install</code>. | |||
Библиотеки называются следующим образом: <code>ghc{мажор}-{название_библиотеки}</code>, в случае сборки библиотеки со "стабильным" <code>GHC</code> библиотеку следует называть <code>ghc-{название_библиотеки}</code> | |||
= Основные репозитории = | |||
* Текущие мажоры GHC: | |||
** [https://git.altlinux.org/gears/g/ghc9.6.git ghc9.6] - стабильный | |||
* Метапакет - [https://git.altlinux.org/gears/g/ghc.git ghc] | |||
* [https://git.altlinux.org/gears/c/cabal-install.git cabal-install] | |||
= Подробнее = | |||
* [[Haskell/GHC]] | |||
* [[Haskell/RPM]] | |||
* [[Haskell/Vendored]] |
Версия от 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