From aa5cff205de270ef98d8848816cdf66ba8a4deee Mon Sep 17 00:00:00 2001 From: krasimir Date: Sun, 8 Jun 2008 10:35:19 +0000 Subject: [PATCH] force the interpreter to flush the output. usefull for the testsuite --- src-3.0/GF/Command/Interpreter.hs | 7 ++++--- src-3.0/GFI.hs | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src-3.0/GF/Command/Interpreter.hs b/src-3.0/GF/Command/Interpreter.hs index f39960ae9..6bac6eca0 100644 --- a/src-3.0/GF/Command/Interpreter.hs +++ b/src-3.0/GF/Command/Interpreter.hs @@ -11,6 +11,7 @@ import PGF import PGF.Data import PGF.Macros import GF.System.Signal +import GF.Infra.UseIO import GF.Data.ErrM ---- @@ -30,13 +31,13 @@ interpretCommandLine env line = Just [] -> return () Just pipes -> do res <- runInterruptibly (mapM_ interPipe pipes) case res of - Left ex -> print ex + Left ex -> putStrLnFlush (show ex) Right x -> return x - Nothing -> putStrLn "command not parsed" + Nothing -> putStrLnFlush "command not parsed" where interPipe cs = do (_,s) <- intercs ([],"") cs - putStrLn s + putStrLnFlush s intercs treess [] = return treess intercs (trees,_) (c:cs) = do treess2 <- interc trees c diff --git a/src-3.0/GFI.hs b/src-3.0/GFI.hs index 0a8751c58..37abb3cd6 100644 --- a/src-3.0/GFI.hs +++ b/src-3.0/GFI.hs @@ -41,7 +41,7 @@ loop opts gfenv0 = do s <- fetchCommand (prompt env) let gfenv = gfenv0 {history = s : history gfenv0} let loopNewCPU gfenv' = do cpu' <- getCPUTime - putStrLn (show ((cpu' - cputime gfenv') `div` 1000000000) ++ " msec") + putStrLnFlush (show ((cpu' - cputime gfenv') `div` 1000000000) ++ " msec") loop opts $ gfenv' {cputime = cpu'} case words s of -- special commands, requiring source grammar in env @@ -78,7 +78,7 @@ importInEnv gfenv opts files do let opts' = addOptions (setOptimization OptCSE False) opts pgf0 = multigrammar (commandenv gfenv) pgf1 <- importGrammar pgf0 opts' files - putStrLn $ unwords $ "\nLanguages:" : languages pgf1 + putStrLnFlush $ unwords $ "\nLanguages:" : languages pgf1 return $ gfenv { commandenv = mkCommandEnv pgf1 } welcome = unlines [