Dado un proyecto de Haskell, ¿hay alguna forma de calcular automáticamente toda la lista de dependencias? Todas las bibliotecas de las que depende, así como las bibliotecas que se han incluido pero que no son obligatorias.Dependencias de lista automática para un proyecto
Respuesta
Como dije en los comentarios, cabal-install ya lo hace (estoy utilizando cabal-install 0.14.0) adivinando los paquetes a través de la búsqueda de módulos (como GHCi). No tiene ninguna inteligencia real w.r.t. versiones por lo que simplemente establece la versión de la versión principal de lo que ha instalado.
A continuación puede verme haciendo un paquete ficticio que importa Data.Vector
y cabal-install infers Estoy usando el vector 0.9. *.
[[email protected] blah]$ pwd
/tmp/blah
[[email protected] blah]$ cat Data/Blah.hs
module Data.Blah where
import Data.Vector
[[email protected] blah]$ cabal init
Package name? [default: blah]
...SNIP...
What does the package build:
1) Library
2) Executable
Your choice? 1
Include documentation on what each field means (y/n)? [default: n]
Guessing dependencies... <--- SEE, SEE! YAY!
Generating LICENSE...
Warning: unknown license type, you must put a copy in LICENSE yourself.
Generating Setup.hs...
Generating blah.cabal...
You may want to edit the .cabal file and add a Description field.
[[email protected] blah]$ cat blah.cabal
-- Initial blah.cabal generated by cabal init. For further documentation,
-- see http://haskell.org/cabal/users-guide/
name: blah
version: 0.1.0.0
synopsis: Sisponys
-- description:
-- license:
license-file: LICENSE
author: Me
maintainer: [email protected]
-- copyright:
-- category:
build-type: Simple
cabal-version: >=1.8
library
exposed-modules: Data.Blah
-- other-modules:
build-depends: base ==4.5.*, vector ==0.9.* <-- SEE?? SEE! YIPPEE!!
Estoy usando 'cabal-install version 0.10.2'. Esa es la versión que se incluye con la plataforma Haskell, así que supongo que esta es una funcionalidad reciente. –
@VladtheImpala Supongo que necesita la última versión 0.14.0. Incluye varias mejoras 'cabal init '. –
- 1. Detección automática de dependencias C
- 2. (automática) Inyección de dependencias Encuadernación Mecanismos
- 3. Analizar dependencias JAR en un proyecto Java
- 4. Herramienta para eliminar dependencias innecesarias en un proyecto Java
- 5. En un proyecto de configuración VS, ¿cómo puedo excluir las dependencias de un proyecto del MSI?
- 6. generar dependencias para un archivo MAKE para un proyecto en C/C++
- 7. ¿Cómo encontrar dependencias innecesarias en un proyecto múltiple de maven?
- 8. ¿Tener un proyecto maven crea sus propias dependencias?
- 9. Eclipse Proyecto de complemento con otras dependencias de proyecto
- 10. Unity .NET: Lista de dependencias
- 11. Inter Dependencias del proyecto de Maven
- 12. ¿Cómo construir un proyecto de C# sin verificar las dependencias?
- 13. No se pudieron obtener dependencias para la referencia del proyecto
- 14. elemento no válida en la lista de dependencias después de importar el proyecto Android desde Eclipse
- 15. Dependencias del proyecto Qmake (bibliotecas vinculadas)
- 16. Cómo puedo heredar las dependencias/referencias del proyecto de un proyecto a un proyecto dependiente en Visual Studio
- 17. Cómo liberar un proyecto multi-módulo con dependencias no liberados
- 18. CRealice - dependencias (cabeceras) entre aplicaciones/bibliotecas en un mismo proyecto
- 19. Dependencias del módulo Java EE en un proyecto web?
- 20. ¿Cómo configuro un proyecto de prueba para un proyecto de complemento de Eclipse?
- 21. Herramienta para mostrar las dependencias de ensamblaje
- 22. dependencias mínimas para JasperReports
- 23. Dependencias cíclicas
- 24. Orden de compilación en CruiseControl.NET con dependencias de proyecto
- 25. Probando el proyecto de Android con dependencias de jar
- 26. Conversión de un proyecto de Netbeans en un proyecto habilitado para Maven
- 27. ¿Cómo incluir dependencias en el proyecto de instalación y despliegue?
- 28. Herramienta para rastrear #include dependencias
- 29. Eclipse WTP no publica dependencias de proyecto en WebContent
- 30. Cómo obtener la lista de los tarros de dependencia de un SBT 0.10.0 proyecto
Cabal trata de averiguar las dependencias cuando ejecuta 'cabal init'. ¿Es ese el tipo de funcionalidad en la que estabas pensando? –
¿En qué etapa? Usé el cabal init y no descubrió ninguna dependencia. –
¿Qué etapa? La etapa donde has escrito un código y estás listo para cabalizar tu proyecto (crea un archivo .cabal). Una versión suficientemente nueva de cabal leerá los módulos y tratará de inferir las dependencias. –