base 4.7.0.0 → 4.7.0.1
raw patch · 7 files changed
+34/−12 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Foreign: addForeignPtrFinalizer :: FinalizerPtr a -> ForeignPtr a -> IO ()
- Foreign: addForeignPtrFinalizerEnv :: FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
- Foreign: castForeignPtr :: ForeignPtr a -> ForeignPtr b
- Foreign: data ForeignPtr a
- Foreign: finalizeForeignPtr :: ForeignPtr a -> IO ()
- Foreign: mallocForeignPtr :: Storable a => IO (ForeignPtr a)
- Foreign: mallocForeignPtrArray :: Storable a => Int -> IO (ForeignPtr a)
- Foreign: mallocForeignPtrArray0 :: Storable a => Int -> IO (ForeignPtr a)
- Foreign: mallocForeignPtrBytes :: Int -> IO (ForeignPtr a)
- Foreign: newForeignPtr :: FinalizerPtr a -> Ptr a -> IO (ForeignPtr a)
- Foreign: newForeignPtrEnv :: FinalizerEnvPtr env a -> Ptr env -> Ptr a -> IO (ForeignPtr a)
- Foreign: newForeignPtr_ :: Ptr a -> IO (ForeignPtr a)
- Foreign: touchForeignPtr :: ForeignPtr a -> IO ()
- Foreign: type FinalizerEnvPtr env a = FunPtr (Ptr env -> Ptr a -> IO ())
- Foreign: type FinalizerPtr a = FunPtr (Ptr a -> IO ())
- Foreign: withForeignPtr :: ForeignPtr a -> (Ptr a -> IO b) -> IO b
+ Foreign.ForeignPtr: addForeignPtrFinalizer :: FinalizerPtr a -> ForeignPtr a -> IO ()
+ Foreign.ForeignPtr: addForeignPtrFinalizerEnv :: FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
+ Foreign.ForeignPtr: castForeignPtr :: ForeignPtr a -> ForeignPtr b
+ Foreign.ForeignPtr: data ForeignPtr a
+ Foreign.ForeignPtr: finalizeForeignPtr :: ForeignPtr a -> IO ()
+ Foreign.ForeignPtr: mallocForeignPtr :: Storable a => IO (ForeignPtr a)
+ Foreign.ForeignPtr: mallocForeignPtrArray :: Storable a => Int -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: mallocForeignPtrArray0 :: Storable a => Int -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: mallocForeignPtrBytes :: Int -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: newForeignPtr :: FinalizerPtr a -> Ptr a -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: newForeignPtrEnv :: FinalizerEnvPtr env a -> Ptr env -> Ptr a -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: newForeignPtr_ :: Ptr a -> IO (ForeignPtr a)
+ Foreign.ForeignPtr: touchForeignPtr :: ForeignPtr a -> IO ()
+ Foreign.ForeignPtr: type FinalizerEnvPtr env a = FunPtr (Ptr env -> Ptr a -> IO ())
+ Foreign.ForeignPtr: type FinalizerPtr a = FunPtr (Ptr a -> IO ())
+ Foreign.ForeignPtr: withForeignPtr :: ForeignPtr a -> (Ptr a -> IO b) -> IO b
Files
- Data/Fixed.hs +6/−2
- Data/Typeable/Internal.hs +3/−1
- Foreign/ForeignPtr.hs +0/−1
- base.cabal +2/−2
- cbits/inputReady.c +5/−1
- changelog.md +13/−0
- configure +5/−5
Data/Fixed.hs view
@@ -158,9 +158,13 @@ convertFixed :: forall a . HasResolution a => Lexeme -> ReadPrec (Fixed a) convertFixed (Number n)- | Just (i, f) <- numberToFixed r n =- return (fromInteger i + (fromInteger f / (10 ^ r)))+ | Just (i, f) <- numberToFixed e n =+ return (fromInteger i + (fromInteger f / (10 ^ e))) where r = resolution (undefined :: Fixed a)+ -- round 'e' up to help make the 'read . show == id' property+ -- possible also for cases where 'resolution' is not a+ -- power-of-10, such as e.g. when 'resolution = 128'+ e = ceiling (logBase 10 (fromInteger r) :: Double) convertFixed _ = pfail data E0 = E0
Data/Typeable/Internal.hs view
@@ -252,7 +252,9 @@ -- | Kind-polymorphic Typeable instance for type application instance (Typeable s, Typeable a) => Typeable (s a) where- typeRep# _ = typeRep# (proxy# :: Proxy# s) `mkAppTy` typeRep# (proxy# :: Proxy# a)+ typeRep# = \_ -> rep+ where rep = typeRep# (proxy# :: Proxy# s)+ `mkAppTy` typeRep# (proxy# :: Proxy# a) ----------------- Showing TypeReps --------------------
Foreign/ForeignPtr.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- |
base.cabal view
@@ -1,6 +1,6 @@ name: base-version: 4.7.0.0--- GHC 7.6.1 released with 4.6.0.0+version: 4.7.0.1+-- GHC 7.6.3 released with 4.7.0.0 license: BSD3 license-file: LICENSE maintainer: libraries@haskell.org
cbits/inputReady.c view
@@ -25,7 +25,11 @@ int maxfd, ready; fd_set rfd, wfd; struct timeval tv;- + if ((fd >= (int)FD_SETSIZE) || (fd < 0)) {+ /* avoid memory corruption on too large FDs */+ errno = EINVAL;+ return -1;+ } FD_ZERO(&rfd); FD_ZERO(&wfd); if (write) {
changelog.md view
@@ -1,5 +1,18 @@ # Changelog for [`base` package](http://hackage.haskell.org/package/base) +## 4.7.0.1 *Jul 2014*++ * Bundled with GHC 7.8.3++ * Unhide `Foreign.ForeignPtr` in Haddock (#8475)++ * Fix recomputation of `TypeRep` in `Typeable` type-application instance+ (#9203)++ * Fix regression in Data.Fixed Read instance (#9231)++ * Fix `fdReady` to honor `FD_SETSIZE` (#9168)+ ## 4.7.0.0 *Mar 2014* * Bundled with GHC 7.8.1
configure view
@@ -3876,7 +3876,7 @@ We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];@@ -3922,7 +3922,7 @@ We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];@@ -3946,7 +3946,7 @@ We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];@@ -3991,7 +3991,7 @@ We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];@@ -4015,7 +4015,7 @@ We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];