如何在以下后维护-interactive-print:load或:在ghci中重新加载?

时间:2016-06-03 20:22:20

标签: haskell ghci

我正在使用-interactive-print打印ghci中评估的每一行后的当前时间:

(来自~/.ghci):

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

在我尝试:load文件之前一直有效:

$ 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

我在这里看到了这张描述问题的票:https://ghc.haskell.org/trac/ghc/ticket/11159;建议的解决方案是把它放在一个“注册包”中,我并不完全理解。我把它放在Text.Show中,是不是很正确?感谢。

(为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

1 个答案:

答案 0 :(得分:1)

您正在使用GHC 7.10.3;您链接的票证表明 7.10.3之后已修复。因此,您需要将GHC升级为更新版本。