Cabal ( arquitectura común para crear aplicaciones y bibliotecas ) es un tipo de administrador de paquetes para ayudar a empaquetar y distribuir paquetes de software, en forma de software de aplicación y bibliotecas , para el lenguaje de programación Haskell .
Cabal se introdujo para simplificar el empaquetado de software y módulos Haskell. Se agregó al compilador Glasgow Haskell en la versión 6.4 como el administrador de paquetes predeterminado, [2] junto con el administrador interno de GHC ghc-pkg . Su enfoque ha cambiado significativamente a lo largo de su desarrollo, pasando de la instalación global de paquetes a compilaciones en entornos aislados y, finalmente, a una solución inspirada en Nix de compilaciones locales con almacenamiento en caché global, [3] que se convirtió en la predeterminada en 2019.
Los paquetes Cabal proporcionan un conjunto estándar de metadatos y un proceso de compilación; por lo tanto, es posible desarrollar herramientas para cargar paquetes Cabal al repositorio comunitario de software similar a CPAN , Hackage , o incluso permitir la descarga , compilación e instalación automatizadas de los paquetes deseados desde Hackage. [4]