Dato un progetto di Haskell, c'è un modo per calcolare automaticamente l'intero elenco delle dipendenze? Tutte le librerie da cui dipende e le librerie che sono state incluse ma non sono richieste.automaticamente List dipendenze per un progetto
risposta
Come ho detto nei commenti, cabal-install lo fa già (sto usando cabal-install 0.14.0) indovinando i pacchetti tramite la ricerca del modulo (come GHCi). Non ha alcuna vera intelligenza w.r.t. versioni quindi imposta semplicemente la versione sulla versione principale della corrispondenza di ciò che è stato installato.
Qui sotto puoi vedere un pacchetto fittizio che importa Data.Vector
e infalli di installazione di cabine sto usando il vettore 0.9. *.
[[email protected] blah]$ pwd
/tmp/blah
[tom[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!!
Sto usando 'cabal-install versione 0.10.2'. Questa è la versione che viene fornita in bundle con la piattaforma Haskell, quindi immagino che questa sia una funzionalità recente. –
@VladtheImpala Suppongo che tu abbia bisogno dell'ultima versione 0.14.0. Include vari miglioramenti di 'cabal init'. –
- 1. Aggiorna dipendenze Maven automaticamente
- 2. Impossibile selezionare automaticamente un progetto Xcode
- 3. dipendenze di movimentazione per progetto iOS quadro
- 4. IntelliJ IDEA può importare automaticamente le dipendenze?
- 5. Come configurare Checkstyle in Eclipse per un progetto Maven automaticamente
- 6. Gulp build non installa automaticamente le dipendenze?
- 7. Perché mailing list per la collaborazione del progetto?
- 8. Come posso risolvere automaticamente le dipendenze C#?
- 9. Usare g ++ con -MMD nel makefile per generare automaticamente dipendenze
- 10. Intellij "Crea progetto automaticamente" guai
- 11. C'è un modo per generare automaticamente "Dipendenze aggiuntive" per "Custom Build" in Visual Studio?
- 12. Spring list bean per tipo
- 13. C'è un modo per determinare automaticamente le dipendenze quando si imposta un file di controllo dpkg?
- 14. Impossibile ottenere le dipendenze per il riferimento del progetto
- 15. Riferimenti del progetto v Dipendenze NuGet
- 16. Progetto plug-in Eclipse con altre dipendenze di progetto
- 17. progetto di SBT è molto lento per risolvere le dipendenze
- 18. Aggiunta di dipendenze a un progetto Scala (sbt)
- 19. Identificare dipendenze problematiche nel progetto C++/CLI
- 20. : Riscaricamento delle dipendenze e progetto di sincronizzazione
- 21. Come esportare un progetto Eclipse con dipendenze Jar esterne?
- 22. Modulo EE Java Dipendenze nel progetto web?
- 23. Hive 0.14 Progetto Maven UDF mancante Dipendenze
- 24. dipendenze Maven vs gestione delle dipendenze per più progetti
- 25. Come generare il grafico delle dipendenze per classe solo per un progetto?
- 26. Come collegarsi automaticamente alle dipendenze della libreria condivisa
- 27. Conversione List per Dict
- 28. Costruire progetto in un JAR automaticamente in Eclipse
- 29. Rimuovi automaticamente classi CSS non utilizzate da un progetto
- 30. Come ordinare automaticamente per nome nel progetto Xcode
Cabal prova a capire le dipendenze quando si esegue 'cabal init'. È questo il tipo di funzionalità a cui stavi pensando? –
In quale fase? Ho usato la cabal init e non ho trovato alcuna dipendenza. –
Che stage? La fase in cui hai scritto del codice e sei pronto per cabalizzare il tuo progetto (crea un file .cabal). Una versione sufficientemente nuova di cabal leggerà i moduli e cercherà di dedurre le dipendenze. –