Stack es una herramienta para construir proyectos Haskell y gestionar sus dependencias. Utiliza la biblioteca Cabal pero con una versión seleccionada del repositorio Hackage llamada Stackage . [3] [4]
Stack compite contra el binario cabal-install de Cabal [5] y ha sido creado como resultado de las críticas generales sobre los problemas de dependencia. [6] Sin embargo, no proporciona su propio formato de paquete , sino que utiliza archivos existentes *.cabal
y complementa los proyectos con un stack.yaml
archivo adicional.
Esta publicación de blog pretende responder dos preguntas muy frecuentes [
sic
] sobre stack: ¿en qué se diferencia de Cabal? Y: ¿Por qué se desarrolló como un proyecto separado en lugar de trabajar con Cabal?
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 conectaron a Cabal con palabras como infierno, dolor, horrible, apesta, frustrante y espantoso. Sólo este tema mostró un descontento tan grave.