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 +15/−3
- Data/Bits.hs +2/−1
- Data/List.hs +1/−1
- GHC/IO.hs +18/−4
- GHC/IO/Handle/Text.hs +2/−1
- GHC/Read.lhs +25/−14
- System/IO.hs +61/−23
- Text/Read/Lex.hs +105/−0
- base.cabal +1/−1
- cbits/Win32Utils.c +6/−0
- configure +154/−131
- include/HsBaseConfig.h +12/−12
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 */