2016-06-03 3 views
1

J'utilise -interactive-print pour imprimer l'heure actuelle après chaque ligne évaluée dans ghci:Comment conserver -interactive-print après: load ou: recharger dans ghci?

(de ~/.ghci):

import qualified Text.Show.TimePrint 
:set -interactive-print=Text.Show.TimePrint.timePrint 

Il fonctionne jusqu'à ce que j'essaie de :load un fichier:

$ ghci 
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help 
Prelude Text.Show.TimePrint> 1+2 
3 
20:08:42 
Prelude Text.Show.TimePrint> :l file.hs 
[1 of 1] Compiling Main    (file.hs, interpreted) 
Ok, modules loaded: Main. 
*Main Text.Show.TimePrint> 1+2 
3 

J'ai vu ce billet ici qui décrit le problème: https://ghc.haskell.org/trac/ghc/ticket/11159; la solution proposée est de le mettre dans un «paquet enregistré», que je ne comprends pas exactement. Je l'ai mis dans Text.Show, est-ce pas tout à fait raison? Merci.

(Le code pour le paquet installé pour faire TimePrint :)

module Text.Show.TimePrint (timePrint) where 

import System.IO 
import Data.Time 

getTime :: IO String 
getTime = do 
    now <- getCurrentTime 
    return (formatTime defaultTimeLocale "%T" now) 

timePrint :: Show a => a -> IO() 
timePrint a = do 
    s <- getTime 
    putStrLn $ show a ++ "\n" ++ s 
+0

Que dit 'ghc-pkg find-module Text.Show.TimePrint'? –

Répondre

1

Vous utilisez GHC 7.10.3; le ticket que vous avez lié indique que ceci est corrigé après 7.10.3. Vous aurez donc besoin de mettre à jour votre GHC pour quelque chose de plus récent.