Кабал (программное обеспечение) - Cabal (software)
Оригинальный автор (ы) | Исаак Поточны-Джонс |
---|---|
Разработчики) | Дункан Куттс |
изначальный выпуск | Январь 2005 г. |
Стабильный выпуск | 3.2.0.0[1] / Апрель 2020 |
Репозиторий | |
Написано в | Haskell |
Операционная система | Любой Unix-подобный, Майкрософт Виндоус |
Размер | 0.4 мегабайты |
Доступно в | английский |
Тип | Менеджер пакетов уровня приложения |
Лицензия | BSD |
Интернет сайт | www |
В Haskell Кабала (общая архитектура для строительства Приложения и библиотеки ) помогает в упаковке и распространении программные пакеты. Он содержится в Платформа Haskell.
История
Cabal был введен для упрощения упаковки программного обеспечения и модулей Haskell.[нужна цитата ]. Он был добавлен в Компилятор Glasgow Haskell версия 6.4 в качестве менеджера пакетов по умолчанию,[2] по внутреннему менеджеру GHC ghc-pkg. Настоящая бинарная клика[3] и библиотека Кабала[4] разработаны в разных пакетах.
За время своего развития он получил дополнительные функции, такие как песочницы.[нужна цитата ], которые позволяют избежать так называемого ада Кабала (см. ниже).
Использовать
Пакеты Cabal предоставляют стандартный набор метаданные и процесс сборки; таким образом, можно разработать инструменты для загрузки пакетов Cabal в CPAN -подобный репозиторий программного обеспечения сообщества, Взлом, или даже разрешить автоматическую загрузку, компиляцию и установку желаемых пакетов из Hackage.[3]
Критика
Поскольку Cabal по умолчанию использует глобальный репозиторий пакетов, конфликты версий в зависимостях могут привести к Кабала ад, состояние, при котором некоторые пакеты не могут быть установлены без переустановки уже существующих и, следовательно, поломки других пакетов.[5][6]
Хотя версия 1.18 представила песочницы и улучшила это ад зависимости,[7] Неправильное использование песочниц могло по-прежнему приводить к проблемам, поскольку пакеты на Hackage могли не собираться или границы версий для зависимостей были слишком свободными.[нужна цитата ] В результате появился более стабильный (но менее передовой) вариант Hackage под названием Стек был создан.[8] Позже он был расширен с помощью Haskell LTS.[нужна цитата ] и инструмент куча,[9][10] который не разделяет его проблем.
Рекомендации
- ^ "Получение The Haskell Cabal". Получено 23 мая 2020.
- ^ «1.4. Примечания к выпуску версии 6.4». GHC 6.4 руководство пользователя. Получено 2016-01-12.
- ^ а б "cabal-install: интерфейс командной строки для Cabal and Hackage". Взлом. Получено 12 января 2016.
- ^ «Кабала: фреймворк для упаковки программного обеспечения Haskell». Взлом. Получено 12 января 2016.
- ^ "Кабала / Выживание - HaskellWiki". HaskellWiki. Получено 12 января 2016.
- ^ "Как мы могли бы отменить Ад Кабала". Хорошо типизированный - консультанты Haskell. Получено 12 января 2016.
- ^ "[Haskell-cafe] Выпущена ANN: Cabal v1.18.0". Список рассылки Haskell-cafe. Получено 12 января 2016.
- ^ «Сервер стека». FP Complete. Получено 12 января 2016.
- ^ «ОБЪЯВЛЕНИЕ: первая публичная бета-версия стека». FP Complete. Получено 12 января 2016.
- ^ «Чего хотят хаскеллеры? Более тысячи говорят нам».
Управление пакетами с помощью Cabal - худший аспект использования Haskell. На вопрос, повлияют ли улучшения в управлении пакетами на их будущий выбор Haskell для проекта, 38% ответили, что это будет «критически важно», а еще 29% ответили, что это будет «важно». Комментарии связали клику со словами вроде ад, боль, ужасный, отстой, разочарование и ужас. Только эта тема выявила такое серьезное недовольство.
внешняя ссылка
- Официальный веб-сайт
- «Кабала Haskell: общая архитектура для создания приложений и инструментов» - (исходное предложение и спецификация Айзека Джонса, Саймон Пейтон Джонс, Саймон Марлоу, Малкольм Уоллес и Росс Паттерсон; версия была представлена на Haskell Workshop, 2005)
- Кабала разговор[постоянная мертвая ссылка ] - (слайды)