summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonmar <unknown>2003-06-23 10:13:03 +0000
committersimonmar <unknown>2003-06-23 10:13:03 +0000
commitdd6fe03634149bfb79aa1878114514806161947b (patch)
treee064f79a00ff33ec72a9b8ed0249bd94f8f133df
parent1f861358a07a4bf2586964a65aebb4433f16ac70 (diff)
downloadhaskell-dd6fe03634149bfb79aa1878114514806161947b.tar.gz
[project @ 2003-06-23 10:13:03 by simonmar]
openFileEx can't be gotten from GHC.Handle any more.
-rw-r--r--ghc/compiler/utils/Binary.hs13
1 files changed, 12 insertions, 1 deletions
diff --git a/ghc/compiler/utils/Binary.hs b/ghc/compiler/utils/Binary.hs
index 8f11809ac1..16a5291dae 100644
--- a/ghc/compiler/utils/Binary.hs
+++ b/ghc/compiler/utils/Binary.hs
@@ -96,7 +96,18 @@ import GHC.Real ( Ratio(..) )
import GHC.Exts
import GHC.IOBase ( IO(..) )
import GHC.Word ( Word8(..) )
+#endif
+
+#if __GLASGOW_HASKELL__ < 601
+-- openFileEx is available from the lang package, but we want to
+-- be independent of hslibs libraries.
import GHC.Handle ( openFileEx, IOModeEx(..) )
+#else
+import System.IO ( openBinaryFile )
+#endif
+
+#if __GLASGOW_HASKELL__ < 601
+openBinaryFile f mode = openFileEx f (BinaryMode mode)
#endif
#if __GLASGOW_HASKELL__ < 503
@@ -226,7 +237,7 @@ isEOFBin (BinIO _ ix_r h) = hIsEOF h
writeBinMem :: BinHandle -> FilePath -> IO ()
writeBinMem (BinIO _ _ _) _ = error "Data.Binary.writeBinMem: not a memory handle"
writeBinMem (BinMem _ ix_r sz_r arr_r) fn = do
- h <- openFileEx fn (BinaryMode WriteMode)
+ h <- openBinaryFile fn WriteMode
arr <- readIORef arr_r
ix <- readFastMutInt ix_r
hPutArray h arr ix