base 4.14.0.0 → 4.14.1.0
raw patch · 7 files changed
+89/−22 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ GHC.Float: log1mexpOrd :: (Ord a, Floating a) => a -> a
+ GHC.Stats: [gcdetails_nonmoving_gc_sync_cpu_ns] :: GCDetails -> RtsTime
+ GHC.Stats: [gcdetails_nonmoving_gc_sync_elapsed_ns] :: GCDetails -> RtsTime
+ GHC.Stats: [nonmoving_gc_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats: [nonmoving_gc_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats: [nonmoving_gc_max_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats: [nonmoving_gc_sync_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats: [nonmoving_gc_sync_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats: [nonmoving_gc_sync_max_elapsed_ns] :: RTSStats -> RtsTime
- GHC.Stats: GCDetails :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> GCDetails
+ GHC.Stats: GCDetails :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails
- GHC.Stats: RTSStats :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails -> RTSStats
+ GHC.Stats: RTSStats :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails -> RTSStats
Files
- Foreign/C/Types.hs +29/−4
- GHC/Float.hs +10/−6
- GHC/IO/FD.hs +6/−9
- GHC/Stats.hsc +34/−0
- base.cabal +1/−1
- changelog.md +8/−1
- configure +1/−1
Foreign/C/Types.hs view
@@ -27,11 +27,11 @@ ( -- * Representations of C types -- $ctypes - -- ** Platform differences+ -- ** #platform# Platform differences -- | This module contains platform specific information about types.- -- __/As such the types presented on this page reflect the platform- -- on which the documentation was generated and may not coincide with- -- the types on your platform./__+ -- __/As such, the types presented on this page reflect the/__+ -- __/platform on which the documentation was generated and may/__+ -- __/not coincide with the types on your platform./__ -- ** Integral types -- | These types are represented as @newtype@s of@@ -105,33 +105,45 @@ #include "CTypes.h" -- | Haskell type representing the C @char@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CChar,HTYPE_CHAR) -- | Haskell type representing the C @signed char@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CSChar,HTYPE_SIGNED_CHAR) -- | Haskell type representing the C @unsigned char@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CUChar,HTYPE_UNSIGNED_CHAR) -- | Haskell type representing the C @short@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CShort,HTYPE_SHORT) -- | Haskell type representing the C @unsigned short@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CUShort,HTYPE_UNSIGNED_SHORT) -- | Haskell type representing the C @int@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CInt,HTYPE_INT) -- | Haskell type representing the C @unsigned int@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CUInt,HTYPE_UNSIGNED_INT) -- | Haskell type representing the C @long@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CLong,HTYPE_LONG) -- | Haskell type representing the C @unsigned long@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CULong,HTYPE_UNSIGNED_LONG) -- | Haskell type representing the C @long long@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CLLong,HTYPE_LONG_LONG) -- | Haskell type representing the C @unsigned long long@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CULLong,HTYPE_UNSIGNED_LONG_LONG) -- | Haskell type representing the C @bool@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ -- -- @since 4.10.0.0 INTEGRAL_TYPE_WITH_CTYPE(CBool,bool,HTYPE_BOOL)@@ -164,8 +176,10 @@ #-} -- | Haskell type representing the C @float@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ FLOATING_TYPE(CFloat,HTYPE_FLOAT) -- | Haskell type representing the C @double@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ FLOATING_TYPE(CDouble,HTYPE_DOUBLE) -- XXX GHC doesn't support CLDouble yet @@ -182,12 +196,16 @@ -- "realToFrac/CLDouble->a" realToFrac = \(CLDouble x) -> realToFrac x -- | Haskell type representing the C @ptrdiff_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CPtrdiff,HTYPE_PTRDIFF_T) -- | Haskell type representing the C @size_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CSize,HTYPE_SIZE_T) -- | Haskell type representing the C @wchar_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CWchar,HTYPE_WCHAR_T) -- | Haskell type representing the C @sig_atomic_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CSigAtomic,HTYPE_SIG_ATOMIC_T) {-# RULES@@ -203,25 +221,32 @@ #-} -- | Haskell type representing the C @clock_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ ARITHMETIC_TYPE(CClock,HTYPE_CLOCK_T) -- | Haskell type representing the C @time_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ ARITHMETIC_TYPE(CTime,HTYPE_TIME_T) -- | Haskell type representing the C @useconds_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ -- -- @since 4.4.0.0 ARITHMETIC_TYPE(CUSeconds,HTYPE_USECONDS_T) -- | Haskell type representing the C @suseconds_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ -- -- @since 4.4.0.0 ARITHMETIC_TYPE(CSUSeconds,HTYPE_SUSECONDS_T) -- FIXME: Implement and provide instances for Eq and Storable -- | Haskell type representing the C @FILE@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ data CFile = CFile -- | Haskell type representing the C @fpos_t@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ data CFpos = CFpos -- | Haskell type representing the C @jmp_buf@ type.+-- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ data CJmpBuf = CJmpBuf INTEGRAL_TYPE(CIntPtr,HTYPE_INTPTR_T)
GHC/Float.hs view
@@ -141,6 +141,14 @@ log1pexp x = log1p (exp x) log1mexp x = log1p (negate (exp x)) +-- | Default implementation for @'log1mexp'@ requiring @'Ord'@ to test+-- against a threshold to decide which implementation variant to use.+log1mexpOrd :: (Ord a, Floating a) => a -> a+{-# INLINE log1mexpOrd #-}+log1mexpOrd a+ | a > -(log 2) = log (negate (expm1 a))+ | otherwise = log1p (negate (exp a))+ -- | Efficient, machine-independent access to the components of a -- floating-point number. class (RealFrac a, Floating a) => RealFloat a where@@ -398,9 +406,7 @@ log1p = log1pFloat expm1 = expm1Float - log1mexp a- | a <= log 2 = log (negate (expm1Float a))- | otherwise = log1pFloat (negate (exp a))+ log1mexp x = log1mexpOrd x {-# INLINE log1mexp #-} log1pexp a | a <= 18 = log1pFloat (exp a)@@ -539,9 +545,7 @@ log1p = log1pDouble expm1 = expm1Double - log1mexp a- | a <= log 2 = log (negate (expm1Double a))- | otherwise = log1pDouble (negate (exp a))+ log1mexp x = log1mexpOrd x {-# INLINE log1mexp #-} log1pexp a | a <= 18 = log1pDouble (exp a)
GHC/IO/FD.hs view
@@ -67,16 +67,13 @@ c_DEBUG_DUMP :: Bool c_DEBUG_DUMP = False --- Darwin limits the length of writes to 2GB. See--- #17414.+-- Darwin limits the length of writes to 2GB. See #17414.+-- Moreover, Linux will only transfer up to 0x7ffff000 and interpreting the+-- result of write/read is tricky above 2GB due to its signed type. For+-- simplicity we therefore clamp on all platforms. clampWriteSize, clampReadSize :: Int -> Int-#if defined(darwin_HOST_OS)-clampWriteSize = min 0x7fffffff-clampReadSize = min 0x7fffffff-#else-clampWriteSize = id-clampReadSize = id-#endif+clampWriteSize = min 0x7ffff000+clampReadSize = min 0x7ffff000 -- ----------------------------------------------------------------------------- -- The file-descriptor IO device
GHC/Stats.hsc view
@@ -103,6 +103,25 @@ -- | Total elapsed time (at the previous GC) , elapsed_ns :: RtsTime + -- | The CPU time used during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , nonmoving_gc_sync_cpu_ns :: RtsTime+ -- | The time elapsed during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , nonmoving_gc_sync_elapsed_ns :: RtsTime+ -- | The maximum time elapsed during the post-mark pause phase of the+ -- concurrent nonmoving GC.+ , nonmoving_gc_sync_max_elapsed_ns :: RtsTime+ -- | The CPU time used during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , nonmoving_gc_cpu_ns :: RtsTime+ -- | The time elapsed during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , nonmoving_gc_elapsed_ns :: RtsTime+ -- | The maximum time elapsed during the post-mark pause phase of the+ -- concurrent nonmoving GC.+ , nonmoving_gc_max_elapsed_ns :: RtsTime+ -- | Details about the most recent GC , gc :: GCDetails } deriving ( Read -- ^ @since 4.10.0.0@@ -146,6 +165,13 @@ , gcdetails_cpu_ns :: RtsTime -- | The time elapsed during GC itself , gcdetails_elapsed_ns :: RtsTime++ -- | The CPU time used during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , gcdetails_nonmoving_gc_sync_cpu_ns :: RtsTime+ -- | The time elapsed during the post-mark pause phase of the concurrent+ -- nonmoving GC.+ , gcdetails_nonmoving_gc_sync_elapsed_ns :: RtsTime } deriving ( Read -- ^ @since 4.10.0.0 , Show -- ^ @since 4.10.0.0 )@@ -192,6 +218,12 @@ gc_elapsed_ns <- (# peek RTSStats, gc_elapsed_ns) p cpu_ns <- (# peek RTSStats, cpu_ns) p elapsed_ns <- (# peek RTSStats, elapsed_ns) p+ nonmoving_gc_sync_cpu_ns <- (# peek RTSStats, nonmoving_gc_sync_cpu_ns) p+ nonmoving_gc_sync_elapsed_ns <- (# peek RTSStats, nonmoving_gc_sync_elapsed_ns) p+ nonmoving_gc_sync_max_elapsed_ns <- (# peek RTSStats, nonmoving_gc_sync_max_elapsed_ns) p+ nonmoving_gc_cpu_ns <- (# peek RTSStats, nonmoving_gc_cpu_ns) p+ nonmoving_gc_elapsed_ns <- (# peek RTSStats, nonmoving_gc_elapsed_ns) p+ nonmoving_gc_max_elapsed_ns <- (# peek RTSStats, nonmoving_gc_max_elapsed_ns) p let pgc = (# ptr RTSStats, gc) p gc <- do gcdetails_gen <- (# peek GCDetails, gen) pgc@@ -211,5 +243,7 @@ gcdetails_sync_elapsed_ns <- (# peek GCDetails, sync_elapsed_ns) pgc gcdetails_cpu_ns <- (# peek GCDetails, cpu_ns) pgc gcdetails_elapsed_ns <- (# peek GCDetails, elapsed_ns) pgc+ gcdetails_nonmoving_gc_sync_cpu_ns <- (# peek GCDetails, nonmoving_gc_sync_cpu_ns) pgc+ gcdetails_nonmoving_gc_sync_elapsed_ns <- (# peek GCDetails, nonmoving_gc_sync_elapsed_ns) pgc return GCDetails{..} return RTSStats{..}
base.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: base-version: 4.14.0.0+version: 4.14.1.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause
changelog.md view
@@ -1,6 +1,13 @@ # Changelog for [`base` package](http://hackage.haskell.org/package/base) -## 4.14.0.0 *Jan 2020+## 4.14.1.0 *Jul 2020*++ * Bundled with GHC 8.10.2++ * Fix a precision issue in `log1mexp` (#17125)++## 4.14.0.0 *Jan 2020*+ * Bundled with GHC 8.10.1 * Add a `TestEquality` instance for the `Compose` newtype.
configure view
@@ -32193,7 +32193,7 @@ if test "x$ac_cv_type_struct_MD5Context" = xyes; then : else- as_fn_error $? "internal error" "$LINENO" 5+ : fi # The cast to long int works around a bug in the HP C Compiler