El Haskell Cabal ( arquitectura común para la construcción de aplicaciones y bibliotecas ) ayuda en el envasado y distribución de paquetes de software . Está contenido en la plataforma Haskell .
Autor (es) original (es) | Isaac Potoczny-Jones |
---|---|
Desarrollador (es) | Duncan Coutts |
Versión inicial | Enero de 2005 |
Lanzamiento estable | 3.2.1.0 [1] / abril de 2020 |
Repositorio | |
Escrito en | Haskell |
Sistema operativo | Cualquier tipo Unix , Microsoft Windows |
Tamaño | 0,4 megabytes |
Disponible en | inglés |
Tipo | Administrador de paquetes a nivel de aplicación |
Licencia | BSD |
Sitio web | www |
Historia
Cabal se ha introducido para simplificar el empaquetado del software y los módulos de Haskell [ cita requerida ] . Se agregó a la versión 6.4 del compilador Glasgow Haskell como administrador de paquetes predeterminado, [2] junto con el administrador interno de GHC ghc-pkg. El cabal binario actual [3] y la biblioteca Cabal [4] se desarrollan en diferentes paquetes.
A lo largo de su desarrollo ha ganado características adicionales, como sandboxes [ cita requerida ] , que permiten escapar del llamado infierno Cabal (ver más abajo).
Usar
Los paquetes Cabal proporcionan un conjunto estándar de metadatos y procesos de construcción; por lo tanto, es posible desarrollar herramientas para cargar paquetes Cabal al repositorio de software de la comunidad similar a CPAN , Hackage , o incluso permitir la descarga, compilación e instalación automatizadas de los paquetes deseados de Hackage. [3]
Crítica
Cabal usó previamente un repositorio de paquetes global de forma predeterminada, los conflictos de versiones en las dependencias podrían llevar al infierno de Cabal , un estado en el que ciertos paquetes no se podían instalar sin reinstalar los ya existentes y, por lo tanto, romper los otros paquetes. [5] [6]
En 2014, se creó una variante más estable (pero menos avanzada) de Hackage llamada Stackage . [7] En 2015, se amplió con Haskell LTS [ cita requerida ] y la pila de herramientas , [8] [9] que no comparte sus problemas.
Cabal v3 se lanzó en 2019. [1] Un nuevo estilo de construcción resuelve el infierno de una manera similar al administrador de paquetes Nix . [10]
Referencias
- ^ a b "Registro de cambios de Cabal" . Consultado el 25 de enero de 2021 .
- ^ "1.4. Notas de la versión 6.4" . Manual de usuario de GHC 6.4 . Consultado el 12 de enero de 2016 .
- ^ a b "cabal-install: La interfaz de línea de comandos para Cabal y Hackage" . Hackage . Consultado el 12 de enero de 2016 .
- ^ "Cabal: un marco para empaquetar el software Haskell" . Hackage . Consultado el 12 de enero de 2016 .
- ^ "Cabal / Survival - HaskellWiki" . HaskellWiki . Consultado el 12 de enero de 2016 .
- ^ "Cómo podríamos abolir el Infierno Cabal" . Bien escrito: los consultores de Haskell . Consultado el 12 de enero de 2016 .
- ^ "Servidor de pila" . FP completo . Consultado el 12 de enero de 2016 .
- ^ "ANUNCIO: primera beta pública de pila" . FP completo . Consultado el 12 de enero de 2016 .
- ^ "¿Qué quieren los Haskellers? Más de mil nos lo dicen" .
La gestión de paquetes con cabal es el peor aspecto del uso de Haskell. Cuando se les preguntó si las mejoras en la gestión de paquetes marcarían una diferencia en su elección futura de Haskell para un proyecto, el 38% dijo que sería "crucial" y otro 29% dijo que sería "importante". Los comentarios conectaban a la cábala con palabras como infierno, dolor, horrible, apesta, frustrante y espantoso. Solo este tema mostró una insatisfacción tan grave.
- ^ Mikhail Glushenkov. "Cabal 2.0" . Consultado el 25 de enero de 2021 .
enlaces externos
- Página web oficial
- "The Haskell Cabal: A Common Architecture for Building Applications and Tools" - (la propuesta y la especificación originales, de Isaac Jones, Simon Peyton Jones , Simon Marlow , Malcolm Wallace y Ross Patterson; se envió una versión al Haskell Workshop, 2005 )
- Cabal talk [ enlace muerto permanente ] - (diapositivas)