2013-06-09 14 views
38

Ho provato la testa della cabala che ha il supporto per sandbox simile a cabal-dev. Tuttavia non esiste ancora il supporto per un equivalente cabal-dev ghci e apparently no support planned per la prossima versione.Come posso utilizzare GHCi con le nuove sandbox cabali 1.17?

C'è qualche formula magica che posso usare per ovviare a questo e ottenere qualcosa di simile a cabal-dev ghci?

+2

Sfortunatamente, al momento non esiste un analogo facile da usare per 'cabal-dev ghci'. Duncan pianifica di unire le patch GSoC 2011 di Sam Anklesaria implementando 'cabal repl' ad un certo punto (ha già fuso alcuni lavori preparatori), ma ATM non è in HEAD. Una volta implementato 'cabal repl', le sandbox lo supporteranno anche. –

+0

Grazie per le informazioni! Accetterei anche soluzioni difficili da usare. – jberryman

risposta

38

modifica (agosto 2013): Le patch cabal repl sono state unite di recente. Questa funzionalità farà parte della prossima versione.


momento in cui scriviamo, non c'è analogico facile da usare per cabal-dev ghci. Abbiamo in programma di aggiungere un comando cabal repl in futuro, tuttavia, al momento questa funzionalità non è in HEAD Cabal.

Nel frattempo, si può provare la seguente soluzione:

$ cd $YOUR_PACKAGE_DIR 

# For GHC >= 7.6 
$ ghci -no-user-package-db -package-db .cabal-sandbox/i386-linux-ghc-7.6.1-packages.conf.d 

# For GHC < 7.6 
$ ghci -no-user-package-conf -package-conf .cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d 

Questo non renderà i moduli della confezione immediatamente disponibili da ghci - si dovrà caricarli con :l o import (che può interrompere la presenza di preprocessori personalizzati e CPP).

+7

Si noti che 'cabal repl' è disponibile a partire dalla versione 1.18 della cabala: http://coldwa.st/e/blog/201-08-08-21-Cabal-1-18.html Ciò significa che quando si ha la versione cabale> = 1.18 puoi semplicemente digitare 'cabal repl' nella directory del tuo progetto e la sandbox verrà usata se disponibile. –

+0

Inoltre, basti pensare che l'i386-linux ... è specifico per la versione di OS e ghc - Ho una versione ghc e OS diversa, quindi ho dovuto inserire un prefisso diverso per il mio file conf.d. Questo potrebbe essere ovvio per tutti gli altri, ma sono nuovo di Haskell. –

Problemi correlati