Don't use -recomp whem compiling GHC, as it's the default (and now deprecated)
[ghc-hetmet.git] / compiler / utils / Util.lhs
index 9537ae1..217a450 100644 (file)
@@ -6,7 +6,7 @@
 
 \begin{code}
 module Util (
-        debugIsOn,
+        debugIsOn, isWindowsHost,
 
         -- general list processing
         zipEqual, zipWithEqual, zipWith3Equal, zipWith4Equal,
@@ -74,8 +74,6 @@ module Util (
         Direction(..), reslash,
     ) where
 
--- XXX This define is a bit of a hack, and should be done more nicely
-#define FAST_STRING_NOT_NEEDED 1
 #include "HsVersions.h"
 
 import Panic
@@ -108,7 +106,7 @@ infixr 9 `thenCmp`
 
 %************************************************************************
 %*                                                                      *
-\subsection{-DDEBUG}
+\subsection{Is DEBUG on, are we on Windows?}
 %*                                                                      *
 %************************************************************************
 
@@ -119,6 +117,13 @@ debugIsOn = True
 #else
 debugIsOn = False
 #endif
+
+isWindowsHost :: Bool
+#ifdef mingw32_HOST_OS
+isWindowsHost = True
+#else
+isWindowsHost = False
+#endif
 \end{code}
 
 %************************************************************************
@@ -204,7 +209,12 @@ zipWith4Equal msg _ _  _  _  _  =  panic ("zipWith4Equal: unequal lists:"++msg)
 
 zipLazy :: [a] -> [b] -> [(a,b)]
 zipLazy []     _       = []
-zipLazy (x:xs) ~(y:ys) = (x,y) : zipLazy xs ys
+-- We want to write this, but with GHC 6.4 we get a warning, so it
+-- doesn't validate:
+-- zipLazy (x:xs) ~(y:ys) = (x,y) : zipLazy xs ys
+-- so we write this instead:
+zipLazy (x:xs) zs = let y : ys = zs
+                    in (x,y) : zipLazy xs ys
 \end{code}