From 493be175668bdbba7c10a2e75ab883df18f93c92 Mon Sep 17 00:00:00 2001 From: boy Date: Fri, 31 Mar 2006 13:32:46 +0000 Subject: [PATCH] strict file IO for make --- src/System/Plugins/Make.hs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/System/Plugins/Make.hs b/src/System/Plugins/Make.hs index d5f413e..8617271 100644 --- a/src/System/Plugins/Make.hs +++ b/src/System/Plugins/Make.hs @@ -66,9 +66,9 @@ import System.Plugins.Env ( lookupMerged, addMerge , getModuleDeps) #if DEBUG -import System.IO (hFlush, stdout, openFile, IOMode(..),hClose, hPutStr) +import System.IO (hFlush, stdout, openFile, IOMode(..),hClose, hPutStr, hGetContents) #else -import System.IO (openFile, IOMode(..),hClose,hPutStr) +import System.IO (openFile, IOMode(..),hClose,hPutStr, hGetContents) #endif import System.Directory ( doesFileExist, removeFile @@ -391,8 +391,8 @@ rawMerge src stb out always_merge = do ;if not do_merge && not always_merge then return $ MergeSuccess NotReq [] out else do - src_str <- readFile src - stb_str <- readFile stb + src_str <- readFile' src + stb_str <- readFile' stb let (a,a') = parsePragmas src_str (b,b') = parsePragmas stb_str @@ -441,3 +441,10 @@ rm_f f = handleJust doesntExist (\_->return ()) (removeFile f) | otherwise = Nothing doesntExist _ = Nothing +readFile' f = do + h <- openFile f ReadMode + s <- hGetContents h + length s `seq` return () + hClose h + return s +