2014-07-14 13 views
18

cabal repl è abbastanza utile per eseguire il debug di una libreria, tuttavia ghci avrà tutti i pacchetti nascosti che non dipendono dal pacchetto cabal. Mentre questo è certamente una buona cosa per cabal build, per repl significa che non posso caricare qualcosa da un pacchetto non correlato per un test rapido.Esiste un modo semplice per caricare pacchetti extra su ghci quando viene richiamato tramite cabal repl?

I può accesso qualsiasi pacchetto inserendo :set -package, ma che sarà scaricano tutti i moduli da thepacakge sto lavorando, sconfiggere il punto di cabal repl.

Quale è un buon modo per caricare semplicemente i pacchetti che ho installato, ma non voglio come dipendenze alla mia libreria?

risposta

23
cabal repl --ghc-option='-package xyz' 

Questo caricherà il pacchetto che si sta chiamando dal cabal repl e il pacchetto xyz.

Per fare che, dopo il fatto, cioè quando si è già in REPL e si desidera caricare un modulo di supporto in più da un altro pacchetto:

GHCi> :set -package xyz 
GHCi> :m +XYZ.Module.You.Suddenly.Need 
+1

Potrebbe indicare anche il percorso di un pacchetto locale, o un git url? – SwiftsNamesake

2

Un modo (non ottimale) sarebbe quello di modificare il file cabal e aggiungere un flag manuale/falso extra_dependency, aggiungere le dipendenze necessarie in una sezione condizionale build-depends.

Il problema, in effetti, è necessario modificare manualmente il file cabal ogni volta che si desidera accedere a una libreria hidden ma, almeno, la libreria non dipende ufficialmente da quelle librerie.

In caso contrario, potrebbe essere possibile impostare il percorso del modulo per esaminare la cache della sandbox.

Problemi correlati