[commit: ghc] master: Export more types from GHC.RTS.Flags (#9970) (1967a52)

git at git.haskell.org git at git.haskell.org
Tue Jul 7 19:20:42 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/1967a52df5bea5539e46393fa0da0a1ebd6d9db8/ghc

>---------------------------------------------------------------

commit 1967a52df5bea5539e46393fa0da0a1ebd6d9db8
Author: RyanGlScott <ryan.gl.scott at gmail.com>
Date:   Tue Jul 7 21:20:07 2015 +0200

    Export more types from GHC.RTS.Flags (#9970)
    
    Export the data types `GiveGCStats`, `DoCostCentres`, `DoHeapProfiles`,
    and `DoTrace`, as well as the type synonyms `Time` and `RtsNat`. The
    above data types appear as fields in the `-Stats` data types in
    `GHC.RTS.Flags`, but since they only have `Show` instances, it is
    practically impossible to due anything useful with the above types
    unless they are exported.
    
    Reviewers: hvr, ekmett, austin, ezyang, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie, bgamari
    
    Differential Revision: https://phabricator.haskell.org/D1030
    
    GHC Trac Issues: #9970


>---------------------------------------------------------------

1967a52df5bea5539e46393fa0da0a1ebd6d9db8
 libraries/base/GHC/RTS/Flags.hsc | 20 +++++++++++++-------
 libraries/base/changelog.md      |  3 +++
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/libraries/base/GHC/RTS/Flags.hsc b/libraries/base/GHC/RTS/Flags.hsc
index 308aafb..d2afcab 100644
--- a/libraries/base/GHC/RTS/Flags.hsc
+++ b/libraries/base/GHC/RTS/Flags.hsc
@@ -9,13 +9,19 @@
 -- @since 4.8.0.0
 --
 module GHC.RTS.Flags
-  ( RTSFlags (..)
+  ( RtsTime
+  , RtsNat
+  , RTSFlags (..)
+  , GiveGCStats (..)
   , GCFlags (..)
   , ConcFlags (..)
   , MiscFlags (..)
   , DebugFlags (..)
+  , DoCostCentres (..)
   , CCFlags (..)
+  , DoHeapProfile (..)
   , ProfFlags (..)
+  , DoTrace (..)
   , TraceFlags (..)
   , TickyFlags (..)
   , getRTSFlags
@@ -48,7 +54,7 @@ import GHC.Show
 import GHC.Word
 
 -- | @'Time'@ is defined as a @'StgWord64'@ in @stg/Types.h@
-type Time = Word64
+type RtsTime = Word64
 
 -- | @'nat'@ defined in @rts/Types.h@
 type RtsNat = #{type unsigned int}
@@ -98,19 +104,19 @@ data GCFlags = GCFlags
       -- ^ use "mostly mark-sweep" instead of copying for the oldest generation
     , ringBell              :: Bool
     , frontpanel            :: Bool
-    , idleGCDelayTime       :: Time
+    , idleGCDelayTime       :: RtsTime
     , doIdleGC              :: Bool
     , heapBase              :: Word -- ^ address to ask the OS for memory
     , allocLimitGrace       :: Word
     } deriving (Show)
 
 data ConcFlags = ConcFlags
-    { ctxtSwitchTime  :: Time
+    { ctxtSwitchTime  :: RtsTime
     , ctxtSwitchTicks :: Int
     } deriving (Show)
 
 data MiscFlags = MiscFlags
-    { tickInterval          :: Time
+    { tickInterval          :: RtsTime
     , installSignalHandlers :: Bool
     , machineReadable       :: Bool
     , linkerMemBase         :: Word
@@ -198,8 +204,8 @@ instance Enum DoHeapProfile where
 
 data ProfFlags = ProfFlags
     { doHeapProfile            :: DoHeapProfile
-    , heapProfileInterval      :: Time -- ^ time between samples
-    , heapProfileIntervalTicks :: Word -- ^ ticks between samples (derived)
+    , heapProfileInterval      :: RtsTime -- ^ time between samples
+    , heapProfileIntervalTicks :: Word    -- ^ ticks between samples (derived)
     , includeTSOs              :: Bool
     , showCCSOnException       :: Bool
     , maxRetainerSetSize       :: Word
diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index bb09199..53bcb10 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -42,6 +42,9 @@
 
   * Generalise `forever` from `Monad` to `Applicative`
 
+  * Exported `GiveGCStats`, `DoCostCentres`, `DoHeapProfile`, `DoTrace`,
+    `RtsTime`, and `RtsNat` from `GHC.RTS.Flags`
+
 ## 4.8.1.0  *TBA*
 
   * Bundled with GHC 7.10.2



More information about the ghc-commits mailing list