packages feed

base 4.5.0.0 → 4.5.1.0

raw patch · 12 files changed

+402/−191 lines, 12 filesnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Control.Exception.Base: recSelError, absentError, noMethodBindingError, patError, nonExhaustiveGuardsError, runtimeError, irrefutPatError, recConError :: Addr# -> a
- Foreign.C.Error: eOK, eXDEV, eWOULDBLOCK, eUSERS, eTXTBSY, eTOOMANYREFS, eTIMEDOUT, eTIME, eSTALE, eSRMNT, eSRCH, eSPIPE, eSOCKTNOSUPPORT, eSHUTDOWN, eRREMOTE, eRPCMISMATCH, eROFS, eREMOTE, eREMCHG, eRANGE, ePROTOTYPE, ePROTONOSUPPORT, ePROTO, ePROGUNAVAIL, ePROGMISMATCH, ePROCUNAVAIL, ePROCLIM, ePIPE, ePFNOSUPPORT, ePERM, eOPNOTSUPP, eNXIO, eNOTTY, eNOTSOCK, eNOTEMPTY, eNOTDIR, eNOTCONN, eNOTBLK, eNOSYS, eNOSTR, eNOSR, eNOSPC, eNOPROTOOPT, eNONET, eNOMSG, eNOMEM, eNOLINK, eNOLCK, eNOEXEC, eNOENT, eNODEV, eNODATA, eNOBUFS, eNFILE, eNETUNREACH, eNETRESET, eNETDOWN, eNAMETOOLONG, eMULTIHOP, eMSGSIZE, eMLINK, eMFILE, eLOOP, eISDIR, eISCONN, eIO, eINVAL, eINTR, eINPROGRESS, eILSEQ, eIDRM, eHOSTUNREACH, eHOSTDOWN, eFTYPE, eFBIG, eFAULT, eEXIST, eDQUOT, eDOM, eDIRTY, eDESTADDRREQ, eDEADLK, eCONNRESET, eCONNREFUSED, eCONNABORTED, eCOMM, eCHILD, eBUSY, eBADRPC, eBADMSG, eBADF, eALREADY, eAGAIN, eAFNOSUPPORT, eADV, eADDRNOTAVAIL, eADDRINUSE, eACCES, e2BIG :: Errno
- GHC.Constants: mIN_CHARLIKE, mAX_CHARLIKE :: Int
- GHC.Constants: mIN_INTLIKE, mAX_INTLIKE :: Int
- GHC.Constants: tARGET_MIN_INT, tARGET_MAX_WORD, tARGET_MAX_INT :: Integer
- GHC.IO.Encoding: setLocaleEncoding, setForeignEncoding, setFileSystemEncoding :: TextEncoding -> IO ()
- Prelude: even, odd :: Integral a => a -> Bool
- Text.Read.Lex: readOctP, readHexP, readDecP :: (Eq a, Num a) => ReadP a
+ Control.Exception.Base: absentError :: Addr# -> a
+ Control.Exception.Base: irrefutPatError :: Addr# -> a
+ Control.Exception.Base: noMethodBindingError :: Addr# -> a
+ Control.Exception.Base: nonExhaustiveGuardsError :: Addr# -> a
+ Control.Exception.Base: patError :: Addr# -> a
+ Control.Exception.Base: recConError :: Addr# -> a
+ Control.Exception.Base: recSelError :: Addr# -> a
+ Control.Exception.Base: runtimeError :: Addr# -> a
+ Foreign.C.Error: e2BIG :: Errno
+ Foreign.C.Error: eACCES :: Errno
+ Foreign.C.Error: eADDRINUSE :: Errno
+ Foreign.C.Error: eADDRNOTAVAIL :: Errno
+ Foreign.C.Error: eADV :: Errno
+ Foreign.C.Error: eAFNOSUPPORT :: Errno
+ Foreign.C.Error: eAGAIN :: Errno
+ Foreign.C.Error: eALREADY :: Errno
+ Foreign.C.Error: eBADF :: Errno
+ Foreign.C.Error: eBADMSG :: Errno
+ Foreign.C.Error: eBADRPC :: Errno
+ Foreign.C.Error: eBUSY :: Errno
+ Foreign.C.Error: eCHILD :: Errno
+ Foreign.C.Error: eCOMM :: Errno
+ Foreign.C.Error: eCONNABORTED :: Errno
+ Foreign.C.Error: eCONNREFUSED :: Errno
+ Foreign.C.Error: eCONNRESET :: Errno
+ Foreign.C.Error: eDEADLK :: Errno
+ Foreign.C.Error: eDESTADDRREQ :: Errno
+ Foreign.C.Error: eDIRTY :: Errno
+ Foreign.C.Error: eDOM :: Errno
+ Foreign.C.Error: eDQUOT :: Errno
+ Foreign.C.Error: eEXIST :: Errno
+ Foreign.C.Error: eFAULT :: Errno
+ Foreign.C.Error: eFBIG :: Errno
+ Foreign.C.Error: eFTYPE :: Errno
+ Foreign.C.Error: eHOSTDOWN :: Errno
+ Foreign.C.Error: eHOSTUNREACH :: Errno
+ Foreign.C.Error: eIDRM :: Errno
+ Foreign.C.Error: eILSEQ :: Errno
+ Foreign.C.Error: eINPROGRESS :: Errno
+ Foreign.C.Error: eINTR :: Errno
+ Foreign.C.Error: eINVAL :: Errno
+ Foreign.C.Error: eIO :: Errno
+ Foreign.C.Error: eISCONN :: Errno
+ Foreign.C.Error: eISDIR :: Errno
+ Foreign.C.Error: eLOOP :: Errno
+ Foreign.C.Error: eMFILE :: Errno
+ Foreign.C.Error: eMLINK :: Errno
+ Foreign.C.Error: eMSGSIZE :: Errno
+ Foreign.C.Error: eMULTIHOP :: Errno
+ Foreign.C.Error: eNAMETOOLONG :: Errno
+ Foreign.C.Error: eNETDOWN :: Errno
+ Foreign.C.Error: eNETRESET :: Errno
+ Foreign.C.Error: eNETUNREACH :: Errno
+ Foreign.C.Error: eNFILE :: Errno
+ Foreign.C.Error: eNOBUFS :: Errno
+ Foreign.C.Error: eNODATA :: Errno
+ Foreign.C.Error: eNODEV :: Errno
+ Foreign.C.Error: eNOENT :: Errno
+ Foreign.C.Error: eNOEXEC :: Errno
+ Foreign.C.Error: eNOLCK :: Errno
+ Foreign.C.Error: eNOLINK :: Errno
+ Foreign.C.Error: eNOMEM :: Errno
+ Foreign.C.Error: eNOMSG :: Errno
+ Foreign.C.Error: eNONET :: Errno
+ Foreign.C.Error: eNOPROTOOPT :: Errno
+ Foreign.C.Error: eNOSPC :: Errno
+ Foreign.C.Error: eNOSR :: Errno
+ Foreign.C.Error: eNOSTR :: Errno
+ Foreign.C.Error: eNOSYS :: Errno
+ Foreign.C.Error: eNOTBLK :: Errno
+ Foreign.C.Error: eNOTCONN :: Errno
+ Foreign.C.Error: eNOTDIR :: Errno
+ Foreign.C.Error: eNOTEMPTY :: Errno
+ Foreign.C.Error: eNOTSOCK :: Errno
+ Foreign.C.Error: eNOTTY :: Errno
+ Foreign.C.Error: eNXIO :: Errno
+ Foreign.C.Error: eOK :: Errno
+ Foreign.C.Error: eOPNOTSUPP :: Errno
+ Foreign.C.Error: ePERM :: Errno
+ Foreign.C.Error: ePFNOSUPPORT :: Errno
+ Foreign.C.Error: ePIPE :: Errno
+ Foreign.C.Error: ePROCLIM :: Errno
+ Foreign.C.Error: ePROCUNAVAIL :: Errno
+ Foreign.C.Error: ePROGMISMATCH :: Errno
+ Foreign.C.Error: ePROGUNAVAIL :: Errno
+ Foreign.C.Error: ePROTO :: Errno
+ Foreign.C.Error: ePROTONOSUPPORT :: Errno
+ Foreign.C.Error: ePROTOTYPE :: Errno
+ Foreign.C.Error: eRANGE :: Errno
+ Foreign.C.Error: eREMCHG :: Errno
+ Foreign.C.Error: eREMOTE :: Errno
+ Foreign.C.Error: eROFS :: Errno
+ Foreign.C.Error: eRPCMISMATCH :: Errno
+ Foreign.C.Error: eRREMOTE :: Errno
+ Foreign.C.Error: eSHUTDOWN :: Errno
+ Foreign.C.Error: eSOCKTNOSUPPORT :: Errno
+ Foreign.C.Error: eSPIPE :: Errno
+ Foreign.C.Error: eSRCH :: Errno
+ Foreign.C.Error: eSRMNT :: Errno
+ Foreign.C.Error: eSTALE :: Errno
+ Foreign.C.Error: eTIME :: Errno
+ Foreign.C.Error: eTIMEDOUT :: Errno
+ Foreign.C.Error: eTOOMANYREFS :: Errno
+ Foreign.C.Error: eTXTBSY :: Errno
+ Foreign.C.Error: eUSERS :: Errno
+ Foreign.C.Error: eWOULDBLOCK :: Errno
+ Foreign.C.Error: eXDEV :: Errno
+ GHC.Constants: mAX_CHARLIKE :: Int
+ GHC.Constants: mAX_INTLIKE :: Int
+ GHC.Constants: mIN_CHARLIKE :: Int
+ GHC.Constants: mIN_INTLIKE :: Int
+ GHC.Constants: tARGET_MAX_INT :: Integer
+ GHC.Constants: tARGET_MAX_WORD :: Integer
+ GHC.Constants: tARGET_MIN_INT :: Integer
+ GHC.IO.Encoding: setFileSystemEncoding :: TextEncoding -> IO ()
+ GHC.IO.Encoding: setForeignEncoding :: TextEncoding -> IO ()
+ GHC.IO.Encoding: setLocaleEncoding :: TextEncoding -> IO ()
+ Prelude: even :: Integral a => a -> Bool
+ Prelude: odd :: Integral a => a -> Bool
+ Text.Read.Lex: Ident' :: String -> Lexeme'
+ Text.Read.Lex: Number :: Number -> Lexeme'
+ Text.Read.Lex: Punc' :: String -> Lexeme'
+ Text.Read.Lex: Symbol' :: String -> Lexeme'
+ Text.Read.Lex: data Lexeme'
+ Text.Read.Lex: instance Eq Lexeme'
+ Text.Read.Lex: instance Eq Number
+ Text.Read.Lex: instance Show Lexeme'
+ Text.Read.Lex: instance Show Number
+ Text.Read.Lex: lex' :: ReadP Lexeme'
+ Text.Read.Lex: numberToInteger :: Number -> Maybe Integer
+ Text.Read.Lex: numberToRangedRational :: (Int, Int) -> Number -> Maybe Rational
+ Text.Read.Lex: readDecP :: (Eq a, Num a) => ReadP a
+ Text.Read.Lex: readHexP :: (Eq a, Num a) => ReadP a
+ Text.Read.Lex: readOctP :: (Eq a, Num a) => ReadP a
- Data.Bits: class (Eq a, Num a) => Bits a where x shift i | i < 0 = x `shiftR` (- i) | i > 0 = x `shiftL` i | otherwise = x x rotate i | i < 0 = x `rotateR` (- i) | i > 0 = x `rotateL` i | otherwise = x bit i = 1 `shiftL` i x setBit i = x .|. bit i x clearBit i = x .&. complement (bit i) x complementBit i = x `xor` bit i x testBit i = (x .&. bit i) /= 0 x shiftL i = x `shift` i x unsafeShiftL i = x `shiftL` i x shiftR i = x `shift` (- i) x unsafeShiftR i = x `shiftR` i x rotateL i = x `rotate` i x rotateR i = x `rotate` (- i) popCount = go 0 where go !c 0 = c go c w = go (c + 1) (w .&. w - 1)
+ Data.Bits: class (Eq a, Num a) => Bits a where x shift i | i < 0 = x `shiftR` (- i) | i > 0 = x `shiftL` i | otherwise = x x rotate i | i < 0 = x `rotateR` (- i) | i > 0 = x `rotateL` i | otherwise = x bit i = 1 `shiftL` i x setBit i = x .|. bit i x clearBit i = x .&. complement (bit i) x complementBit i = x `xor` bit i x testBit i = (x .&. bit i) /= 0 x shiftL i = x `shift` i x unsafeShiftL i = x `shiftL` i x shiftR i = x `shift` (- i) x unsafeShiftR i = x `shiftR` i x rotateL i = x `rotate` i x rotateR i = x `rotate` (- i) popCount = go 0 where go !c 0 = c go c w = go (c + 1) (w .&. (w - 1))
- Data.Typeable.Internal: mkTyCon :: Word64# -> Word64# -> String -> String -> String -> TyCon
+ Data.Typeable.Internal: mkTyCon :: Word# -> Word# -> String -> String -> String -> TyCon
- Foreign.C.Types: CClock :: Int32 -> CClock
+ Foreign.C.Types: CClock :: Int64 -> CClock
- Foreign.C.Types: CIntPtr :: Int32 -> CIntPtr
+ Foreign.C.Types: CIntPtr :: Int64 -> CIntPtr
- Foreign.C.Types: CLong :: Int32 -> CLong
+ Foreign.C.Types: CLong :: Int64 -> CLong
- Foreign.C.Types: CPtrdiff :: Int32 -> CPtrdiff
+ Foreign.C.Types: CPtrdiff :: Int64 -> CPtrdiff
- Foreign.C.Types: CSUSeconds :: Int32 -> CSUSeconds
+ Foreign.C.Types: CSUSeconds :: Int64 -> CSUSeconds
- Foreign.C.Types: CSize :: Word32 -> CSize
+ Foreign.C.Types: CSize :: Word64 -> CSize
- Foreign.C.Types: CTime :: Int32 -> CTime
+ Foreign.C.Types: CTime :: Int64 -> CTime
- Foreign.C.Types: CUIntPtr :: Word32 -> CUIntPtr
+ Foreign.C.Types: CUIntPtr :: Word64 -> CUIntPtr
- Foreign.C.Types: CULong :: Word32 -> CULong
+ Foreign.C.Types: CULong :: Word64 -> CULong
- GHC.Constants: type TargetInt = Int32
+ GHC.Constants: type TargetInt = Int64
- GHC.Constants: type TargetWord = Word32
+ GHC.Constants: type TargetWord = Word64
- GHC.Exts: uncheckedIShiftL64# :: Int64# -> Int# -> Int64#
+ GHC.Exts: uncheckedIShiftL64# :: Int# -> Int# -> Int#
- GHC.Exts: uncheckedIShiftRA64# :: Int64# -> Int# -> Int64#
+ GHC.Exts: uncheckedIShiftRA64# :: Int# -> Int# -> Int#
- GHC.Exts: uncheckedShiftL64# :: Word64# -> Int# -> Word64#
+ GHC.Exts: uncheckedShiftL64# :: Word# -> Int# -> Word#
- GHC.Exts: uncheckedShiftRL64# :: Word64# -> Int# -> Word64#
+ GHC.Exts: uncheckedShiftRL64# :: Word# -> Int# -> Word#
- System.Posix.Types: CNlink :: Word32 -> CNlink
+ System.Posix.Types: CNlink :: Word64 -> CNlink
- System.Posix.Types: CSsize :: Int32 -> CSsize
+ System.Posix.Types: CSsize :: Int64 -> CSsize

Files

Control/Concurrent/Chan.hs view
@@ -40,6 +40,7 @@  import System.IO.Unsafe         ( unsafeInterleaveIO ) import Control.Concurrent.MVar+import Control.Exception (mask_) import Data.Typeable  #include "Typeable.h"@@ -51,7 +52,7 @@ -- |'Chan' is an abstract type representing an unbounded FIFO channel. data Chan a  = Chan (MVar (Stream a))-        (MVar (Stream a))+        (MVar (Stream a)) -- Invariant: the Stream a is always an empty MVar    deriving Eq  INSTANCE_TYPEABLE1(Chan,chanTc,"Chan")@@ -83,9 +84,20 @@ writeChan :: Chan a -> a -> IO () writeChan (Chan _ writeVar) val = do   new_hole <- newEmptyMVar-  modifyMVar_ writeVar $ \old_hole -> do+  mask_ $ do+    old_hole <- takeMVar writeVar     putMVar old_hole (ChItem val new_hole)-    return new_hole+    putMVar writeVar new_hole++-- The reason we don't simply do this:+--+--    modifyMVar_ writeVar $ \old_hole -> do+--      putMVar old_hole (ChItem val new_hole)+--      return new_hole+--+-- is because if an asynchronous exception is received after the 'putMVar'+-- completes and before modifyMVar_ installs the new value, it will set the+-- Chan's write end to a filled hole.  -- |Read the next value from the 'Chan'. readChan :: Chan a -> IO a
Data/Bits.hs view
@@ -238,7 +238,8 @@     popCount = go 0       where         go !c 0 = c-        go c w = go (c+1) (w .&. w - 1)  -- clear the least significant bit set+        go c w = go (c+1) (w .&. (w - 1))  -- clear the least significant bit set+    {-# INLINABLE popCount #-}     {- This implementation is intentionally naive.  Instances are        expected to override it with something optimized for their        size. -}
Data/List.hs view
@@ -376,7 +376,7 @@ deleteBy _  _ []        = [] deleteBy eq x (y:ys)    = if x `eq` y then ys else y : deleteBy eq x ys --- | The '\\' function is list difference ((non-associative).+-- | The '\\' function is list difference (non-associative). -- In the result of @xs@ '\\' @ys@, the first occurrence of each element of -- @ys@ in turn (if any) has been removed from @xs@.  Thus --
GHC/IO.hs view
@@ -208,11 +208,25 @@ unsafeInterleaveIO :: IO a -> IO a unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m) --- We believe that INLINE on unsafeInterleaveIO is safe, because the--- state from this IO thread is passed explicitly to the interleaved--- IO, so it cannot be floated out and shared.+-- We used to believe that INLINE on unsafeInterleaveIO was safe,+-- because the state from this IO thread is passed explicitly to the+-- interleaved IO, so it cannot be floated out and shared.+--+-- HOWEVER, if the compiler figures out that r is used strictly here,+-- then it will eliminate the thunk and the side effects in m will no+-- longer be shared in the way the programmer was probably expecting,+-- but can be performed many times.  In #5943, this broke our+-- definition of fixIO, which contains+--+--    ans <- unsafeInterleaveIO (takeMVar m)+--+-- after inlining, we lose the sharing of the takeMVar, so the second+-- time 'ans' was demanded we got a deadlock.  We could fix this with+-- a readMVar, but it seems wrong for unsafeInterleaveIO to sometimes+-- share and sometimes not (plus it probably breaks the noDuplicate).+-- So now, we do not inline unsafeDupableInterleaveIO. -{-# INLINE unsafeDupableInterleaveIO #-}+{-# NOINLINE unsafeDupableInterleaveIO #-} unsafeDupableInterleaveIO :: IO a -> IO a unsafeDupableInterleaveIO (IO m)   = IO ( \ s -> let
GHC/IO/Handle/Text.hs view
@@ -889,7 +889,8 @@                                         -- that bufReadNBNonEmpty will not                                         -- issue another read.             else-              bufReadNBNonEmpty h_ buf (castPtr ptr) 0 count+              let count' = min count (bufferElems buf)+              in bufReadNBNonEmpty h_ buf (castPtr ptr) 0 count'  haFD :: Handle__ -> FD haFD h_@Handle__{..} =
GHC/Read.lhs view
@@ -1,6 +1,7 @@ \begin{code} {-# LANGUAGE Trustworthy #-}-{-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving #-}+{-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving, PatternGuards,+             ScopedTypeVariables #-} {-# OPTIONS_HADDOCK hide #-}  -----------------------------------------------------------------------------@@ -69,9 +70,10 @@ #endif import GHC.Num import GHC.Real-import GHC.Float ()+import GHC.Float import GHC.Show import GHC.Base+import GHC.Err import GHC.Arr -- For defining instances for the generic deriving mechanism import GHC.Generics (Arity(..), Associativity(..), Fixity(..))@@ -276,6 +278,10 @@ -- ^ Parse a single lexeme lexP = lift L.lex +lexP' :: ReadPrec L.Lexeme'+-- ^ Parse a single lexeme+lexP' = lift L.lex'+ paren :: ReadPrec a -> ReadPrec a -- ^ @(paren p)@ parses \"(P0)\" --      where @p@ parses \"P0\" in precedence context zero@@ -455,28 +461,33 @@ %*********************************************************  \begin{code}-readNumber :: Num a => (L.Lexeme -> ReadPrec a) -> ReadPrec a+readNumber :: Num a => (L.Lexeme' -> ReadPrec a) -> ReadPrec a -- Read a signed number readNumber convert =   parens-  ( do x <- lexP+  ( do x <- lexP'        case x of-         L.Symbol "-" -> do y <- lexP-                            n <- convert y-                            return (negate n)+         L.Symbol' "-" -> do y <- lexP'+                             n <- convert y+                             return (negate n)           _   -> convert x   )  -convertInt :: Num a => L.Lexeme -> ReadPrec a-convertInt (L.Int i) = return (fromInteger i)-convertInt _         = pfail+convertInt :: Num a => L.Lexeme' -> ReadPrec a+convertInt (L.Number n)+ | Just i <- L.numberToInteger n = return (fromInteger i)+convertInt _ = pfail -convertFrac :: Fractional a => L.Lexeme -> ReadPrec a-convertFrac (L.Int i) = return (fromInteger i)-convertFrac (L.Rat r) = return (fromRational r)-convertFrac _         = pfail+convertFrac :: forall a . RealFloat a => L.Lexeme' -> ReadPrec a+convertFrac (L.Ident' "NaN")      = return (0 / 0)+convertFrac (L.Ident' "Infinity") = return (1 / 0)+convertFrac (L.Number n) = let resRange = floatRange (undefined :: a)+                           in case L.numberToRangedRational resRange n of+                              Nothing -> return (1 / 0)+                              Just rat -> return $ fromRational rat+convertFrac _            = pfail  instance Read Int where   readPrec     = readNumber convertInt
System/IO.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude #-}+{-# LANGUAGE ForeignFunctionInterface #-}  ----------------------------------------------------------------------------- -- |@@ -240,6 +241,9 @@ import Data.List import Data.Maybe import Foreign.C.Error+#ifdef mingw32_HOST_OS+import Foreign.C.String+#endif import Foreign.C.Types import System.Posix.Internals import System.Posix.Types@@ -563,13 +567,6 @@          _                      -> error "bug in System.IO.openTempFile"  #ifndef __NHC__-    oflags1 = rw_flags .|. o_EXCL--    binary_flags-      | binary    = o_BINARY-      | otherwise = 0--    oflags = oflags1 .|. binary_flags #endif  #if defined(__NHC__)@@ -577,24 +574,19 @@                         return (filepath, h) #elif defined(__GLASGOW_HASKELL__)     findTempName x = do-      fd <- withFilePath filepath $ \ f ->-              c_open f oflags mode-      if fd < 0-       then do-         errno <- getErrno-         if errno == eEXIST-           then findTempName (x+1)-           else ioError (errnoToIOError loc errno Nothing (Just tmp_dir))-       else do--         (fD,fd_type) <- FD.mkFD fd ReadWriteMode Nothing{-no stat-}-                              False{-is_socket-} -                              True{-is_nonblock-}+      r <- openNewFile filepath binary mode+      case r of+        FileExists -> findTempName (x + 1)+        OpenNewError errno -> ioError (errnoToIOError loc errno Nothing (Just tmp_dir))+        NewFileCreated fd -> do+          (fD,fd_type) <- FD.mkFD fd ReadWriteMode Nothing{-no stat-}+                               False{-is_socket-}+                               True{-is_nonblock-} -         enc <- getLocaleEncoding-         h <- mkHandleFromFD fD fd_type filepath ReadWriteMode False{-set non-block-} (Just enc)+          enc <- getLocaleEncoding+          h <- mkHandleFromFD fD fd_type filepath ReadWriteMode False{-set non-block-} (Just enc) -         return (filepath, h)+          return (filepath, h) #else          h <- fdToHandle fd `onException` c_close fd          return (filepath, h)@@ -613,6 +605,52 @@  #if __HUGS__         fdToHandle fd   = openFd (fromIntegral fd) False ReadWriteMode binary+#endif++#if defined(__GLASGOW_HASKELL__)+data OpenNewFileResult+  = NewFileCreated CInt+  | FileExists+  | OpenNewError Errno++openNewFile :: FilePath -> Bool -> CMode -> IO OpenNewFileResult+openNewFile filepath binary mode = do+  let oflags1 = rw_flags .|. o_EXCL++      binary_flags+        | binary    = o_BINARY+        | otherwise = 0++      oflags = oflags1 .|. binary_flags+  fd <- withFilePath filepath $ \ f ->+          c_open f oflags mode+  if fd < 0+    then do+      errno <- getErrno+      case errno of+        _ | errno == eEXIST -> return FileExists+# ifdef mingw32_HOST_OS+        -- If c_open throws EACCES on windows, it could mean that filepath is a+        -- directory. In this case, we want to return FileExists so that the+        -- enclosing openTempFile can try again instead of failing outright.+        -- See bug #4968.+        _ | errno == eACCES -> do+          withCString filepath $ \path -> do+          -- There is a race here: the directory might have been moved or+          -- deleted between the c_open call and the next line, but there+          -- doesn't seem to be any direct way to detect that the c_open call+          -- failed because of an existing directory.+          exists <- c_fileExists path+          return $ if exists+            then FileExists+            else OpenNewError errno+# endif+        _ -> return (OpenNewError errno)+    else return (NewFileCreated fd)++# ifdef mingw32_HOST_OS+foreign import ccall "file_exists" c_fileExists :: CString -> IO Bool+# endif #endif  -- XXX Should use filepath library
Text/Read/Lex.hs view
@@ -18,9 +18,13 @@ module Text.Read.Lex   -- lexing types   ( Lexeme(..)  -- :: *; Show, Eq+  , Lexeme'(..) +  , numberToInteger, numberToRangedRational+   -- lexer   , lex         -- :: ReadP Lexeme      Skips leading spaces+  , lex'        -- :: ReadP Lexeme      Skips leading spaces   , hsLex       -- :: ReadP String   , lexChar     -- :: ReadP Char        Reads just one char, with H98 escapes @@ -70,12 +74,68 @@   | EOF  deriving (Eq, Show) +data Lexeme' = Ident' String+             | Punc'   String+             | Symbol' String+             | Number Number+ deriving (Eq, Show)++data Number = MkNumber Int              -- Base+                       Digits           -- Integral part+            | MkDecimal Digits          -- Integral part+                        (Maybe Digits)  -- Fractional part+                        (Maybe Integer) -- Exponent+ deriving (Eq, Show)++numberToInteger :: Number -> Maybe Integer+numberToInteger (MkNumber base iPart) = Just (val (fromIntegral base) 0 iPart)+numberToInteger (MkDecimal iPart Nothing Nothing) = Just (val 10 0 iPart)+numberToInteger _ = Nothing++numberToRangedRational :: (Int, Int) -> Number+                       -> Maybe Rational -- Nothing = Inf+numberToRangedRational (neg, pos) n@(MkDecimal iPart mFPart (Just exp))+    = let mFirstDigit = case dropWhile (0 ==) iPart of+                        iPart'@(_ : _) -> Just (length iPart')+                        [] -> case mFPart of+                              Nothing -> Nothing+                              Just fPart ->+                                  case span (0 ==) fPart of+                                  (_, []) -> Nothing+                                  (zeroes, _) ->+                                      Just (negate (length zeroes))+      in case mFirstDigit of+         Nothing -> Just 0+         Just firstDigit ->+             let firstDigit' = firstDigit + fromInteger exp+             in if firstDigit' > (pos + 3)+                then Nothing+                else if firstDigit' < (neg - 3)+                then Just 0+                else Just (numberToRational n)+numberToRangedRational _ n = Just (numberToRational n)++numberToRational :: Number -> Rational+numberToRational (MkNumber base iPart) = val (fromIntegral base) 0 iPart % 1+numberToRational (MkDecimal iPart mFPart mExp)+ = let i = val 10 0 iPart+   in case (mFPart, mExp) of+      (Nothing, Nothing)     -> i % 1+      (Nothing, Just exp)+       | exp >= 0            -> (i * (10 ^ exp)) % 1+       | otherwise           -> i % (10 ^ (- exp))+      (Just fPart, Nothing)  -> fracExp 0   i fPart+      (Just fPart, Just exp) -> fracExp exp i fPart+ -- ----------------------------------------------------------------------------- -- Lexing  lex :: ReadP Lexeme lex = skipSpaces >> lexToken +lex' :: ReadP Lexeme'+lex' = skipSpaces >> lexToken'+ hsLex :: ReadP String -- ^ Haskell lexer: returns the lexed string, rather than the lexeme hsLex = do skipSpaces@@ -91,7 +151,12 @@            lexId      +++            lexNumber +lexToken' :: ReadP Lexeme'+lexToken' = lexSymbol' ++++            lexId'     ++++            fmap Number lexNumber' + -- ---------------------------------------------------------------------- -- End of file lexEOF :: ReadP Lexeme@@ -123,6 +188,17 @@   isSymbolChar c = c `elem` "!@#$%&*+./<=>?\\^|:-~"   reserved_ops   = ["..", "::", "=", "\\", "|", "<-", "->", "@", "~", "=>"] +lexSymbol' :: ReadP Lexeme'+lexSymbol' =+  do s <- munch1 isSymbolChar+     if s `elem` reserved_ops then+        return (Punc' s)         -- Reserved-ops count as punctuation+      else+        return (Symbol' s)+ where+  isSymbolChar c = c `elem` "!@#$%&*+./<=>?\\^|:-~"+  reserved_ops   = ["..", "::", "=", "\\", "|", "<-", "->", "@", "~", "=>"]+ -- ---------------------------------------------------------------------- -- identifiers @@ -142,6 +218,15 @@     isIdsChar c = isAlpha c || c == '_'     isIdfChar c = isAlphaNum c || c `elem` "_'" +lexId' :: ReadP Lexeme'+lexId' = do c <- satisfy isIdsChar+            s <- munch isIdfChar+            return (Ident' (c:s))+  where+          -- Identifiers can start with a '_'+    isIdsChar c = isAlpha c || c == '_'+    isIdfChar c = isAlphaNum c || c `elem` "_'"+ #ifndef __GLASGOW_HASKELL__ infinity, notANumber :: Rational infinity   = 1 :% 0@@ -314,6 +399,12 @@                         -- If that fails, try for a decimal number     lexDecNumber        -- Start with ordinary digits +lexNumber' :: ReadP Number+lexNumber'+  = lexHexOct'  <++      -- First try for hex or octal 0x, 0o etc+                         -- If that fails, try for a decimal number+    lexDecNumber'+ lexHexOct :: ReadP Lexeme lexHexOct   = do  _ <- char '0'@@ -321,6 +412,13 @@         digits <- lexDigits base         return (Int (val (fromIntegral base) 0 digits)) +lexHexOct' :: ReadP Number+lexHexOct'+  = do  _ <- char '0'+        base <- lexBaseChar+        digits <- lexDigits base+        return (MkNumber base digits)+ lexBaseChar :: ReadP Int -- Lex a single character indicating the base; fail if not there lexBaseChar = do { c <- get;@@ -353,6 +451,13 @@     -- Instead of calculating the fractional part alone, then     -- adding the integral part and finally multiplying with     -- 10 ^ exp if an exponent was given, do it all at once.++lexDecNumber' :: ReadP Number+lexDecNumber' =+  do xs    <- lexDigits 10+     mFrac <- lexFrac <++ return Nothing+     mExp  <- lexExp  <++ return Nothing+     return (MkDecimal xs mFrac mExp)  lexFrac :: ReadP (Maybe Digits) -- Read the fractional part; fail if it doesn't
base.cabal view
@@ -1,5 +1,5 @@ name:           base-version:        4.5.0.0+version:        4.5.1.0 license:        BSD3 license-file:   LICENSE maintainer:     libraries@haskell.org
cbits/Win32Utils.c view
@@ -122,5 +122,11 @@     return t; } +BOOL file_exists(LPCTSTR path)+{+    DWORD r = GetFileAttributes(path);+    return r != INVALID_FILE_ATTRIBUTES;+}+ #endif 
configure view
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.67 for Haskell base package 1.0.+# Generated by GNU Autoconf 2.68 for Haskell base package 1.0. # # Report bugs to <libraries@haskell.org>. #@@ -91,6 +91,7 @@ IFS=" ""	$as_nl"  # Find who we are.  Look in the path if we contain no directory separator.+as_myself= case $0 in #((   *[\\/]* ) as_myself=$0 ;;   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -216,11 +217,18 @@   # We cannot yet assume a decent shell, so we have to provide a 	# neutralization value for shells without unset; and this also 	# works around shells that cannot unset nonexistent variables.+	# Preserve -v and -x to the replacement shell. 	BASH_ENV=/dev/null 	ENV=/dev/null 	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV 	export CONFIG_SHELL-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}+	case $- in # ((((+	  *v*x* | *x*v* ) as_opts=-vx ;;+	  *v* ) as_opts=-v ;;+	  *x* ) as_opts=-x ;;+	  * ) as_opts= ;;+	esac+	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi      if test x$as_have_required = xno; then :@@ -1068,7 +1076,7 @@     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"     ;;    esac@@ -1361,7 +1369,7 @@ if $ac_init_version; then   cat <<\_ACEOF Haskell base package configure 1.0-generated by GNU Autoconf 2.67+generated by GNU Autoconf 2.68  Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation@@ -1407,7 +1415,7 @@  	ac_retval=1 fi-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno   as_fn_set_status $ac_retval  } # ac_fn_c_try_compile@@ -1421,7 +1429,7 @@   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; }-if eval "test \"\${$3+set}\"" = set; then :+if eval \${$3+:} false; then :   $as_echo_n "(cached) " >&6 else   eval "$3=no"@@ -1462,7 +1470,7 @@ eval ac_res=\$$3 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; }-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno  } # ac_fn_c_check_type @@ -1498,7 +1506,7 @@      ac_retval=1 fi-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno   as_fn_set_status $ac_retval  } # ac_fn_c_try_cpp@@ -1540,7 +1548,7 @@        ac_retval=$ac_status fi   rm -rf conftest.dSYM conftest_ipa8_conftest.oo-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno   as_fn_set_status $ac_retval  } # ac_fn_c_try_run@@ -1554,7 +1562,7 @@   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; }-if eval "test \"\${$3+set}\"" = set; then :+if eval \${$3+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -1572,7 +1580,7 @@ eval ac_res=\$$3 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; }-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno  } # ac_fn_c_check_header_compile @@ -1584,10 +1592,10 @@ ac_fn_c_check_header_mongrel () {   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack-  if eval "test \"\${$3+set}\"" = set; then :+  if eval \${$3+:} false; then :   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; }-if eval "test \"\${$3+set}\"" = set; then :+if eval \${$3+:} false; then :   $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3@@ -1654,7 +1662,7 @@ esac   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; }-if eval "test \"\${$3+set}\"" = set; then :+if eval \${$3+:} false; then :   $as_echo_n "(cached) " >&6 else   eval "$3=\$ac_header_compiler"@@ -1663,7 +1671,7 @@ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno  } # ac_fn_c_check_header_mongrel @@ -1708,7 +1716,7 @@   # interfere with the next link command; also delete a directory that is   # left behind by Apple's compiler.  We do this before executing the actions.   rm -rf conftest.dSYM conftest_ipa8_conftest.oo-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno   as_fn_set_status $ac_retval  } # ac_fn_c_try_link@@ -1721,7 +1729,7 @@   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; }-if eval "test \"\${$3+set}\"" = set; then :+if eval \${$3+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -1776,7 +1784,7 @@ eval ac_res=\$$3 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; }-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno  } # ac_fn_c_check_func @@ -1953,7 +1961,7 @@ rm -f conftest.val    fi-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno   as_fn_set_status $ac_retval  } # ac_fn_c_compute_int@@ -1962,7 +1970,7 @@ running configure, to aid debugging if configure makes a mistake.  It was created by Haskell base package $as_me 1.0, which was-generated by GNU Autoconf 2.67.  Invocation command line was+generated by GNU Autoconf 2.68.  Invocation command line was    $ $0 $@ @@ -2220,7 +2228,7 @@       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; }   fi done @@ -2332,7 +2340,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_CC+set}" = set; then :+if ${ac_cv_prog_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$CC"; then@@ -2372,7 +2380,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :+if ${ac_cv_prog_ac_ct_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$ac_ct_CC"; then@@ -2425,7 +2433,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_CC+set}" = set; then :+if ${ac_cv_prog_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$CC"; then@@ -2465,7 +2473,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_CC+set}" = set; then :+if ${ac_cv_prog_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$CC"; then@@ -2524,7 +2532,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_CC+set}" = set; then :+if ${ac_cv_prog_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$CC"; then@@ -2568,7 +2576,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :+if ${ac_cv_prog_ac_ct_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -n "$ac_ct_CC"; then@@ -2623,7 +2631,7 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; }  # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5@@ -2738,7 +2746,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; } else   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }@@ -2781,7 +2789,7 @@   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5@@ -2840,7 +2848,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'.-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; }     fi   fi fi@@ -2851,7 +2859,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; }-if test "${ac_cv_objext+set}" = set; then :+if ${ac_cv_objext+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -2892,7 +2900,7 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi@@ -2902,7 +2910,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }-if test "${ac_cv_c_compiler_gnu+set}" = set; then :+if ${ac_cv_c_compiler_gnu+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -2939,7 +2947,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; }-if test "${ac_cv_prog_cc_g+set}" = set; then :+if ${ac_cv_prog_cc_g+:} false; then :   $as_echo_n "(cached) " >&6 else   ac_save_c_werror_flag=$ac_c_werror_flag@@ -3017,7 +3025,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }-if test "${ac_cv_prog_cc_c89+set}" = set; then :+if ${ac_cv_prog_cc_c89+:} false; then :   $as_echo_n "(cached) " >&6 else   ac_cv_prog_cc_c89=no@@ -3134,7 +3142,7 @@   CPP= fi if test -z "$CPP"; then-  if test "${ac_cv_prog_CPP+set}" = set; then :+  if ${ac_cv_prog_CPP+:} false; then :   $as_echo_n "(cached) " >&6 else       # Double quotes because CPP needs to be expanded@@ -3250,7 +3258,7 @@   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; } fi  ac_ext=c@@ -3262,7 +3270,7 @@  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }-if test "${ac_cv_path_GREP+set}" = set; then :+if ${ac_cv_path_GREP+:} false; then :   $as_echo_n "(cached) " >&6 else   if test -z "$GREP"; then@@ -3325,7 +3333,7 @@  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; }-if test "${ac_cv_path_EGREP+set}" = set; then :+if ${ac_cv_path_EGREP+:} false; then :   $as_echo_n "(cached) " >&6 else   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1@@ -3392,7 +3400,7 @@  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; }-if test "${ac_cv_header_stdc+set}" = set; then :+if ${ac_cv_header_stdc+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -3520,7 +3528,7 @@   ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"-if test "x$ac_cv_type_long_long" = x""yes; then :+if test "x$ac_cv_type_long_long" = xyes; then :  cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG 1@@ -3532,7 +3540,7 @@  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; }-if test "${ac_cv_header_stdc+set}" = set; then :+if ${ac_cv_header_stdc+:} false; then :   $as_echo_n "(cached) " >&6 else   cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -3669,7 +3677,7 @@    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }-if test "${ac_cv_sys_largefile_CC+set}" = set; then :+if ${ac_cv_sys_largefile_CC+:} false; then :   $as_echo_n "(cached) " >&6 else   ac_cv_sys_largefile_CC=no@@ -3720,7 +3728,7 @@    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :+if ${ac_cv_sys_file_offset_bits+:} false; then :   $as_echo_n "(cached) " >&6 else   while :; do@@ -3789,7 +3797,7 @@   if test $ac_cv_sys_file_offset_bits = unknown; then     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }-if test "${ac_cv_sys_large_files+set}" = set; then :+if ${ac_cv_sys_large_files+:} false; then :   $as_echo_n "(cached) " >&6 else   while :; do@@ -3862,14 +3870,14 @@ for ac_header in wctype.h do :   ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"-if test "x$ac_cv_header_wctype_h" = x""yes; then :+if test "x$ac_cv_header_wctype_h" = xyes; then :   cat >>confdefs.h <<_ACEOF #define HAVE_WCTYPE_H 1 _ACEOF  for ac_func in iswspace do :   ac_fn_c_check_func "$LINENO" "iswspace" "ac_cv_func_iswspace"-if test "x$ac_cv_func_iswspace" = x""yes; then :+if test "x$ac_cv_func_iswspace" = xyes; then :   cat >>confdefs.h <<_ACEOF #define HAVE_ISWSPACE 1 _ACEOF@@ -3885,7 +3893,7 @@ for ac_func in lstat do :   ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat"-if test "x$ac_cv_func_lstat" = x""yes; then :+if test "x$ac_cv_func_lstat" = xyes; then :   cat >>confdefs.h <<_ACEOF #define HAVE_LSTAT 1 _ACEOF@@ -3984,7 +3992,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for char" >&5 $as_echo_n "checking Haskell type for char... " >&6; }-    if test "${fptools_cv_htype_char+set}" = set; then :+    if ${fptools_cv_htype_char+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -4407,7 +4415,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for signed char" >&5 $as_echo_n "checking Haskell type for signed char... " >&6; }-    if test "${fptools_cv_htype_signed_char+set}" = set; then :+    if ${fptools_cv_htype_signed_char+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -4830,7 +4838,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned char" >&5 $as_echo_n "checking Haskell type for unsigned char... " >&6; }-    if test "${fptools_cv_htype_unsigned_char+set}" = set; then :+    if ${fptools_cv_htype_unsigned_char+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -5253,7 +5261,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for short" >&5 $as_echo_n "checking Haskell type for short... " >&6; }-    if test "${fptools_cv_htype_short+set}" = set; then :+    if ${fptools_cv_htype_short+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -5676,7 +5684,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned short" >&5 $as_echo_n "checking Haskell type for unsigned short... " >&6; }-    if test "${fptools_cv_htype_unsigned_short+set}" = set; then :+    if ${fptools_cv_htype_unsigned_short+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -6099,7 +6107,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for int" >&5 $as_echo_n "checking Haskell type for int... " >&6; }-    if test "${fptools_cv_htype_int+set}" = set; then :+    if ${fptools_cv_htype_int+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -6522,7 +6530,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned int" >&5 $as_echo_n "checking Haskell type for unsigned int... " >&6; }-    if test "${fptools_cv_htype_unsigned_int+set}" = set; then :+    if ${fptools_cv_htype_unsigned_int+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -6945,7 +6953,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long" >&5 $as_echo_n "checking Haskell type for long... " >&6; }-    if test "${fptools_cv_htype_long+set}" = set; then :+    if ${fptools_cv_htype_long+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -7368,7 +7376,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long" >&5 $as_echo_n "checking Haskell type for unsigned long... " >&6; }-    if test "${fptools_cv_htype_unsigned_long+set}" = set; then :+    if ${fptools_cv_htype_unsigned_long+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -7792,7 +7800,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long long" >&5 $as_echo_n "checking Haskell type for long long... " >&6; }-    if test "${fptools_cv_htype_long_long+set}" = set; then :+    if ${fptools_cv_htype_long_long+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -8215,7 +8223,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long long" >&5 $as_echo_n "checking Haskell type for unsigned long long... " >&6; }-    if test "${fptools_cv_htype_unsigned_long_long+set}" = set; then :+    if ${fptools_cv_htype_unsigned_long_long+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -8639,7 +8647,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for float" >&5 $as_echo_n "checking Haskell type for float... " >&6; }-    if test "${fptools_cv_htype_float+set}" = set; then :+    if ${fptools_cv_htype_float+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -9062,7 +9070,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for double" >&5 $as_echo_n "checking Haskell type for double... " >&6; }-    if test "${fptools_cv_htype_double+set}" = set; then :+    if ${fptools_cv_htype_double+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -9485,7 +9493,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ptrdiff_t" >&5 $as_echo_n "checking Haskell type for ptrdiff_t... " >&6; }-    if test "${fptools_cv_htype_ptrdiff_t+set}" = set; then :+    if ${fptools_cv_htype_ptrdiff_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -9908,7 +9916,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for size_t" >&5 $as_echo_n "checking Haskell type for size_t... " >&6; }-    if test "${fptools_cv_htype_size_t+set}" = set; then :+    if ${fptools_cv_htype_size_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -10331,7 +10339,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for wchar_t" >&5 $as_echo_n "checking Haskell type for wchar_t... " >&6; }-    if test "${fptools_cv_htype_wchar_t+set}" = set; then :+    if ${fptools_cv_htype_wchar_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -10754,7 +10762,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for sig_atomic_t" >&5 $as_echo_n "checking Haskell type for sig_atomic_t... " >&6; }-    if test "${fptools_cv_htype_sig_atomic_t+set}" = set; then :+    if ${fptools_cv_htype_sig_atomic_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -11177,7 +11185,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clock_t" >&5 $as_echo_n "checking Haskell type for clock_t... " >&6; }-    if test "${fptools_cv_htype_clock_t+set}" = set; then :+    if ${fptools_cv_htype_clock_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -11600,7 +11608,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for time_t" >&5 $as_echo_n "checking Haskell type for time_t... " >&6; }-    if test "${fptools_cv_htype_time_t+set}" = set; then :+    if ${fptools_cv_htype_time_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -12023,7 +12031,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for useconds_t" >&5 $as_echo_n "checking Haskell type for useconds_t... " >&6; }-    if test "${fptools_cv_htype_useconds_t+set}" = set; then :+    if ${fptools_cv_htype_useconds_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -12445,7 +12453,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for suseconds_t" >&5 $as_echo_n "checking Haskell type for suseconds_t... " >&6; }-    if test "${fptools_cv_htype_suseconds_t+set}" = set; then :+    if ${fptools_cv_htype_suseconds_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -12869,7 +12877,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for dev_t" >&5 $as_echo_n "checking Haskell type for dev_t... " >&6; }-    if test "${fptools_cv_htype_dev_t+set}" = set; then :+    if ${fptools_cv_htype_dev_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -13292,7 +13300,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ino_t" >&5 $as_echo_n "checking Haskell type for ino_t... " >&6; }-    if test "${fptools_cv_htype_ino_t+set}" = set; then :+    if ${fptools_cv_htype_ino_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -13715,7 +13723,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for mode_t" >&5 $as_echo_n "checking Haskell type for mode_t... " >&6; }-    if test "${fptools_cv_htype_mode_t+set}" = set; then :+    if ${fptools_cv_htype_mode_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -14138,7 +14146,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for off_t" >&5 $as_echo_n "checking Haskell type for off_t... " >&6; }-    if test "${fptools_cv_htype_off_t+set}" = set; then :+    if ${fptools_cv_htype_off_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -14561,7 +14569,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for pid_t" >&5 $as_echo_n "checking Haskell type for pid_t... " >&6; }-    if test "${fptools_cv_htype_pid_t+set}" = set; then :+    if ${fptools_cv_htype_pid_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -14984,7 +14992,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for gid_t" >&5 $as_echo_n "checking Haskell type for gid_t... " >&6; }-    if test "${fptools_cv_htype_gid_t+set}" = set; then :+    if ${fptools_cv_htype_gid_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -15407,7 +15415,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uid_t" >&5 $as_echo_n "checking Haskell type for uid_t... " >&6; }-    if test "${fptools_cv_htype_uid_t+set}" = set; then :+    if ${fptools_cv_htype_uid_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -15830,7 +15838,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for cc_t" >&5 $as_echo_n "checking Haskell type for cc_t... " >&6; }-    if test "${fptools_cv_htype_cc_t+set}" = set; then :+    if ${fptools_cv_htype_cc_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -16253,7 +16261,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for speed_t" >&5 $as_echo_n "checking Haskell type for speed_t... " >&6; }-    if test "${fptools_cv_htype_speed_t+set}" = set; then :+    if ${fptools_cv_htype_speed_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -16676,7 +16684,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for tcflag_t" >&5 $as_echo_n "checking Haskell type for tcflag_t... " >&6; }-    if test "${fptools_cv_htype_tcflag_t+set}" = set; then :+    if ${fptools_cv_htype_tcflag_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -17099,7 +17107,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nlink_t" >&5 $as_echo_n "checking Haskell type for nlink_t... " >&6; }-    if test "${fptools_cv_htype_nlink_t+set}" = set; then :+    if ${fptools_cv_htype_nlink_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -17522,7 +17530,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ssize_t" >&5 $as_echo_n "checking Haskell type for ssize_t... " >&6; }-    if test "${fptools_cv_htype_ssize_t+set}" = set; then :+    if ${fptools_cv_htype_ssize_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -17945,7 +17953,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for rlim_t" >&5 $as_echo_n "checking Haskell type for rlim_t... " >&6; }-    if test "${fptools_cv_htype_rlim_t+set}" = set; then :+    if ${fptools_cv_htype_rlim_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -18369,7 +18377,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intptr_t" >&5 $as_echo_n "checking Haskell type for intptr_t... " >&6; }-    if test "${fptools_cv_htype_intptr_t+set}" = set; then :+    if ${fptools_cv_htype_intptr_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -18792,7 +18800,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintptr_t" >&5 $as_echo_n "checking Haskell type for uintptr_t... " >&6; }-    if test "${fptools_cv_htype_uintptr_t+set}" = set; then :+    if ${fptools_cv_htype_uintptr_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -19215,7 +19223,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intmax_t" >&5 $as_echo_n "checking Haskell type for intmax_t... " >&6; }-    if test "${fptools_cv_htype_intmax_t+set}" = set; then :+    if ${fptools_cv_htype_intmax_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -19638,7 +19646,7 @@      { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintmax_t" >&5 $as_echo_n "checking Haskell type for uintmax_t... " >&6; }-    if test "${fptools_cv_htype_uintmax_t+set}" = set; then :+    if ${fptools_cv_htype_uintmax_t+:} false; then :   $as_echo_n "(cached) " >&6 else @@ -20058,7 +20066,7 @@ as_fp_Cache=`$as_echo "fp_cv_const_$fp_const_name" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of $fp_const_name" >&5 $as_echo_n "checking value of $fp_const_name... " >&6; }-if eval "test \"\${$as_fp_Cache+set}\"" = set; then :+if eval \${$as_fp_Cache+:} false; then :   $as_echo_n "(cached) " >&6 else   if ac_fn_c_compute_int "$LINENO" "$fp_const_name" "fp_check_const_result"        "#include <stdio.h>@@ -20088,7 +20096,7 @@ as_fp_Cache=`$as_echo "fp_cv_const_$fp_const_name" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of $fp_const_name" >&5 $as_echo_n "checking value of $fp_const_name... " >&6; }-if eval "test \"\${$as_fp_Cache+set}\"" = set; then :+if eval \${$as_fp_Cache+:} false; then :   $as_echo_n "(cached) " >&6 else   if ac_fn_c_compute_int "$LINENO" "$fp_const_name" "fp_check_const_result"        "@@ -20116,7 +20124,7 @@  { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of O_BINARY" >&5 $as_echo_n "checking value of O_BINARY... " >&6; }-if test "${fp_cv_const_O_BINARY+set}" = set; then :+if ${fp_cv_const_O_BINARY+:} false; then :   $as_echo_n "(cached) " >&6 else   if ac_fn_c_compute_int "$LINENO" "O_BINARY" "fp_check_const_result"        "#include <fcntl.h>@@ -20149,7 +20157,7 @@ # to give prototype text. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; }-if test "${ac_cv_search_iconv+set}" = set; then :+if ${ac_cv_search_iconv+:} false; then :   $as_echo_n "(cached) " >&6 else   ac_func_search_save_LIBS=$LIBS@@ -20182,11 +20190,11 @@ fi rm -f core conftest.err conftest.$ac_objext \     conftest$ac_exeext-  if test "${ac_cv_search_iconv+set}" = set; then :+  if ${ac_cv_search_iconv+:} false; then :   break fi done-if test "${ac_cv_search_iconv+set}" = set; then :+if ${ac_cv_search_iconv+:} false; then :  else   ac_cv_search_iconv=no@@ -20208,7 +20216,7 @@ # determine the current locale's character encoding. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing locale_charset" >&5 $as_echo_n "checking for library containing locale_charset... " >&6; }-if test "${ac_cv_search_locale_charset+set}" = set; then :+if ${ac_cv_search_locale_charset+:} false; then :   $as_echo_n "(cached) " >&6 else   ac_func_search_save_LIBS=$LIBS@@ -20235,11 +20243,11 @@ fi rm -f core conftest.err conftest.$ac_objext \     conftest$ac_exeext-  if test "${ac_cv_search_locale_charset+set}" = set; then :+  if ${ac_cv_search_locale_charset+:} false; then :   break fi done-if test "${ac_cv_search_locale_charset+set}" = set; then :+if ${ac_cv_search_locale_charset+:} false; then :  else   ac_cv_search_locale_charset=no@@ -20268,7 +20276,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of struct MD5Context" >&5 $as_echo_n "checking size of struct MD5Context... " >&6; }-if test "${ac_cv_sizeof_struct_MD5Context+set}" = set; then :+if ${ac_cv_sizeof_struct_MD5Context+:} false; then :   $as_echo_n "(cached) " >&6 else   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (struct MD5Context))" "ac_cv_sizeof_struct_MD5Context"        "#include \"include/md5.h\"@@ -20279,7 +20287,7 @@      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (struct MD5Context)-See \`config.log' for more details" "$LINENO" 5 ; }+See \`config.log' for more details" "$LINENO" 5; }    else      ac_cv_sizeof_struct_MD5Context=0    fi@@ -20365,10 +20373,21 @@      :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else   if test -w "$cache_file"; then-    test "x$cache_file" != "x/dev/null" &&+    if test "x$cache_file" != "x/dev/null"; then       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;}-    cat confcache >$cache_file+      if test ! -f "$cache_file" || test -h "$cache_file"; then+	cat confcache >"$cache_file"+      else+        case $cache_file in #(+        */* | ?:*)+	  mv -f confcache "$cache_file"$$ &&+	  mv -f "$cache_file"$$ "$cache_file" ;; #(+        *)+	  mv -f confcache "$cache_file" ;;+	esac+      fi+    fi   else     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}@@ -20400,7 +20419,7 @@   -: ${CONFIG_STATUS=./config.status}+: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS"@@ -20501,6 +20520,7 @@ IFS=" ""	$as_nl"  # Find who we are.  Look in the path if we contain no directory separator.+as_myself= case $0 in #((   *[\\/]* ) as_myself=$0 ;;   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -20808,7 +20828,7 @@ # values after options handling. ac_log=" This file was extended by Haskell base package $as_me 1.0, which was-generated by GNU Autoconf 2.67.  Invocation command line was+generated by GNU Autoconf 2.68.  Invocation command line was    CONFIG_FILES    = $CONFIG_FILES   CONFIG_HEADERS  = $CONFIG_HEADERS@@ -20870,7 +20890,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Haskell base package config.status 1.0-configured by $0, generated by GNU Autoconf 2.67,+configured by $0, generated by GNU Autoconf 2.68,   with options \\"\$ac_cs_config\\"  Copyright (C) 2010 Free Software Foundation, Inc.@@ -20994,7 +21014,7 @@     "include/EventConfig.h") CONFIG_HEADERS="$CONFIG_HEADERS include/EventConfig.h" ;;     "base.buildinfo") CONFIG_FILES="$CONFIG_FILES base.buildinfo" ;; -  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;   esac done @@ -21016,9 +21036,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || {-  tmp=+  tmp= ac_tmp=   trap 'exit_status=$?-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status+  : "${ac_tmp:=$tmp}"+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0   trap 'as_fn_exit 1' 1 2 13 15 }@@ -21026,12 +21047,13 @@  {   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&-  test -n "$tmp" && test -d "$tmp"+  test -d "$tmp" }  || {   tmp=./conf$$-$RANDOM   (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5+ac_tmp=$tmp  # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES.@@ -21053,7 +21075,7 @@   ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" &&+echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF  @@ -21081,7 +21103,7 @@ rm -f conf$$subs.sh  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h@@ -21129,7 +21151,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK-cat >>"\$tmp/subs1.awk" <<_ACAWK &&+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&   for (key in S) S_is_set[key] = 1   FS = "" @@ -21161,7 +21183,7 @@   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else   cat-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -21195,7 +21217,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then-cat >"$tmp/defines.awk" <<\_ACAWK ||+cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -21207,8 +21229,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`-  if test -z "$ac_t"; then+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`+  if test -z "$ac_tt"; then     break   elif $ac_last_try; then     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5@@ -21309,7 +21331,7 @@   esac   case $ac_mode$ac_tag in   :[FHL]*:*);;-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;   :[FH]-) ac_tag=-:-;;   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;   esac@@ -21328,7 +21350,7 @@     for ac_f     do       case $ac_f in-      -) ac_f="$tmp/stdin";;+      -) ac_f="$ac_tmp/stdin";;       *) # Look for the file first in the build tree, then in the source tree 	 # (if the path is not absolute).  The absolute path cannot be DOS-style, 	 # because $ac_f cannot contain `:'.@@ -21337,7 +21359,7 @@ 	   [\\/$]*) false;; 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 	   esac ||-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;       esac       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac       as_fn_append ac_file_inputs " '$ac_f'"@@ -21363,8 +21385,8 @@     esac      case $ac_tag in-    *:-:* | *:-) cat >"$tmp/stdin" \-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;+    *:-:* | *:-) cat >"$ac_tmp/stdin" \+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;     esac     ;;   esac@@ -21489,21 +21511,22 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack "-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5  test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \+      "$ac_tmp/out"`; test -z "$ac_out"; } &&   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined.  Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined.  Please make sure it is defined" >&2;} -  rm -f "$tmp/stdin"+  rm -f "$ac_tmp/stdin"   case $ac_file in-  -) cat "$tmp/out" && rm -f "$tmp/out";;-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;   esac \   || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;@@ -21514,20 +21537,20 @@   if test x"$ac_file" != x-; then     {       $as_echo "/* $configure_input  */" \-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"-    } >"$tmp/config.h" \+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"+    } >"$ac_tmp/config.h" \       || as_fn_error $? "could not create $ac_file" "$LINENO" 5-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;}     else       rm -f "$ac_file"-      mv "$tmp/config.h" "$ac_file" \+      mv "$ac_tmp/config.h" "$ac_file" \ 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5     fi   else     $as_echo "/* $configure_input  */" \-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \       || as_fn_error $? "could not create -" "$LINENO" 5   fi  ;;
include/HsBaseConfig.h view
@@ -461,7 +461,7 @@ #define HTYPE_CHAR Int8  /* Define to Haskell type for clock_t */-#define HTYPE_CLOCK_T Int64+#define HTYPE_CLOCK_T Int32  /* Define to Haskell type for dev_t */ #define HTYPE_DEV_T Word64@@ -485,10 +485,10 @@ #define HTYPE_INTMAX_T Int64  /* Define to Haskell type for intptr_t */-#define HTYPE_INTPTR_T Int64+#define HTYPE_INTPTR_T Int32  /* Define to Haskell type for long */-#define HTYPE_LONG Int64+#define HTYPE_LONG Int32  /* Define to Haskell type for long long */ #define HTYPE_LONG_LONG Int64@@ -497,7 +497,7 @@ #define HTYPE_MODE_T Word32  /* Define to Haskell type for nlink_t */-#define HTYPE_NLINK_T Word64+#define HTYPE_NLINK_T Word32  /* Define to Haskell type for off_t */ #define HTYPE_OFF_T Int64@@ -506,7 +506,7 @@ #define HTYPE_PID_T Int32  /* Define to Haskell type for ptrdiff_t */-#define HTYPE_PTRDIFF_T Int64+#define HTYPE_PTRDIFF_T Int32  /* Define to Haskell type for rlim_t */ #define HTYPE_RLIM_T Word64@@ -521,22 +521,22 @@ #define HTYPE_SIG_ATOMIC_T Int32  /* Define to Haskell type for size_t */-#define HTYPE_SIZE_T Word64+#define HTYPE_SIZE_T Word32  /* Define to Haskell type for speed_t */ #define HTYPE_SPEED_T Word32  /* Define to Haskell type for ssize_t */-#define HTYPE_SSIZE_T Int64+#define HTYPE_SSIZE_T Int32  /* Define to Haskell type for suseconds_t */-#define HTYPE_SUSECONDS_T Int64+#define HTYPE_SUSECONDS_T Int32  /* Define to Haskell type for tcflag_t */ #define HTYPE_TCFLAG_T Word32  /* Define to Haskell type for time_t */-#define HTYPE_TIME_T Int64+#define HTYPE_TIME_T Int32  /* Define to Haskell type for uid_t */ #define HTYPE_UID_T Word32@@ -545,7 +545,7 @@ #define HTYPE_UINTMAX_T Word64  /* Define to Haskell type for uintptr_t */-#define HTYPE_UINTPTR_T Word64+#define HTYPE_UINTPTR_T Word32  /* Define to Haskell type for unsigned char */ #define HTYPE_UNSIGNED_CHAR Word8@@ -554,7 +554,7 @@ #define HTYPE_UNSIGNED_INT Word32  /* Define to Haskell type for unsigned long */-#define HTYPE_UNSIGNED_LONG Word64+#define HTYPE_UNSIGNED_LONG Word32  /* Define to Haskell type for unsigned long long */ #define HTYPE_UNSIGNED_LONG_LONG Word64@@ -593,7 +593,7 @@ #define STDC_HEADERS 1  /* Number of bits in a file offset, on hosts where this is settable. */-/* #undef _FILE_OFFSET_BITS */+#define _FILE_OFFSET_BITS 64  /* Define for large files, on AIX-style hosts. */ /* #undef _LARGE_FILES */