vacuum 2.1.0.1 → 2.2.0.0
raw patch · 5 files changed
+216/−2 lines, 5 filesnew-uploader
Files
- src/GHC/Vacuum.hs +10/−1
- src/GHC/Vacuum/ClosureType.hs +2/−0
- src/GHC/Vacuum/ClosureType/V708.hs +196/−0
- src/GHC/Vacuum/Internal.hs +5/−0
- vacuum.cabal +3/−1
src/GHC/Vacuum.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE BangPatterns, UnboxedTuples, MagicHash #-}+{-# LANGUAGE BangPatterns, CPP, UnboxedTuples, MagicHash #-} -- | -- Module : GHC.Vacuum -- Copyright : (c) Matt Morrow 2009, Austin Seipp 2011-2012@@ -68,10 +68,19 @@ import Control.Monad import Control.Applicative import Control.Exception+#if MIN_VERSION_base(4,6,0)+import Prelude+#else import Prelude hiding(catch)+#endif import Control.Concurrent +#if MIN_VERSION_base(4,7,0)+import Foreign hiding (void)+#else import Foreign hiding (unsafePerformIO, void)+#endif+ import GHC.Exts import System.Mem.StableName
src/GHC/Vacuum/ClosureType.hs view
@@ -32,6 +32,8 @@ import GHC.Vacuum.ClosureType.V704 (ClosureType(..)) #elif __GLASGOW_HASKELL__ == 706 import GHC.Vacuum.ClosureType.V706 (ClosureType(..))+#elif __GLASGOW_HASKELL__ == 708+import GHC.Vacuum.ClosureType.V708 (ClosureType(..)) #else #error Unsupported GHC version in ClosureTypes.hs! #endif
+ src/GHC/Vacuum/ClosureType/V708.hs view
@@ -0,0 +1,196 @@+module GHC.Vacuum.ClosureType.V708 ( ClosureType(..) ) where+++data ClosureType+ = INVALID_OBJECT+ | CONSTR+ | CONSTR_1_0+ | CONSTR_0_1+ | CONSTR_2_0+ | CONSTR_1_1+ | CONSTR_0_2+ | CONSTR_STATIC+ | CONSTR_NOCAF_STATIC+ | FUN+ | FUN_1_0+ | FUN_0_1+ | FUN_2_0+ | FUN_1_1+ | FUN_0_2+ | FUN_STATIC+ | THUNK+ | THUNK_1_0+ | THUNK_0_1+ | THUNK_2_0+ | THUNK_1_1+ | THUNK_0_2+ | THUNK_STATIC+ | THUNK_SELECTOR+ | BCO+ | AP+ | PAP+ | AP_STACK+ | IND+ | IND_PERM+ | IND_STATIC+ | RET_BCO+ | RET_SMALL+ | RET_BIG+ | RET_FUN+ | UPDATE_FRAME+ | CATCH_FRAME+ | UNDERFLOW_FRAME+ | STOP_FRAME+ | BLOCKING_QUEUE+ | BLACKHOLE+ | MVAR_CLEAN+ | MVAR_DIRTY+ | TVAR+ | ARR_WORDS+ | MUT_ARR_PTRS_CLEAN+ | MUT_ARR_PTRS_DIRTY+ | MUT_ARR_PTRS_FROZEN0+ | MUT_ARR_PTRS_FROZEN+ | MUT_VAR_CLEAN+ | MUT_VAR_DIRTY+ | WEAK+ | PRIM+ | MUT_PRIM+ | TSO+ | STACK+ | TREC_CHUNK+ | ATOMICALLY_FRAME+ | CATCH_RETRY_FRAME+ | CATCH_STM_FRAME+ | WHITEHOLE+ | N_CLOSURE_TYPES+ deriving (Eq, Ord, Show, Read)++instance Enum ClosureType where+ fromEnum INVALID_OBJECT = 0+ fromEnum CONSTR = 1+ fromEnum CONSTR_1_0 = 2+ fromEnum CONSTR_0_1 = 3+ fromEnum CONSTR_2_0 = 4+ fromEnum CONSTR_1_1 = 5+ fromEnum CONSTR_0_2 = 6+ fromEnum CONSTR_STATIC = 7+ fromEnum CONSTR_NOCAF_STATIC = 8+ fromEnum FUN = 9+ fromEnum FUN_1_0 = 10+ fromEnum FUN_0_1 = 11+ fromEnum FUN_2_0 = 12+ fromEnum FUN_1_1 = 13+ fromEnum FUN_0_2 = 14+ fromEnum FUN_STATIC = 15+ fromEnum THUNK = 16+ fromEnum THUNK_1_0 = 17+ fromEnum THUNK_0_1 = 18+ fromEnum THUNK_2_0 = 19+ fromEnum THUNK_1_1 = 20+ fromEnum THUNK_0_2 = 21+ fromEnum THUNK_STATIC = 22+ fromEnum THUNK_SELECTOR = 23+ fromEnum BCO = 24+ fromEnum AP = 25+ fromEnum PAP = 26+ fromEnum AP_STACK = 27+ fromEnum IND = 28+ fromEnum IND_PERM = 29+ fromEnum IND_STATIC = 30+ fromEnum RET_BCO = 31+ fromEnum RET_SMALL = 32+ fromEnum RET_BIG = 33+ fromEnum RET_FUN = 34+ fromEnum UPDATE_FRAME = 35+ fromEnum CATCH_FRAME = 36+ fromEnum UNDERFLOW_FRAME = 37+ fromEnum STOP_FRAME = 38+ fromEnum BLOCKING_QUEUE = 39+ fromEnum BLACKHOLE = 40+ fromEnum MVAR_CLEAN = 41+ fromEnum MVAR_DIRTY = 42+ fromEnum TVAR = 43+ fromEnum ARR_WORDS = 44+ fromEnum MUT_ARR_PTRS_CLEAN = 45+ fromEnum MUT_ARR_PTRS_DIRTY = 46+ fromEnum MUT_ARR_PTRS_FROZEN0 = 47+ fromEnum MUT_ARR_PTRS_FROZEN = 48+ fromEnum MUT_VAR_CLEAN = 49+ fromEnum MUT_VAR_DIRTY = 50+ fromEnum WEAK = 51+ fromEnum PRIM = 52+ fromEnum MUT_PRIM = 53+ fromEnum TSO = 54+ fromEnum STACK = 55+ fromEnum TREC_CHUNK = 56+ fromEnum ATOMICALLY_FRAME = 57+ fromEnum CATCH_RETRY_FRAME = 58+ fromEnum CATCH_STM_FRAME = 59+ fromEnum WHITEHOLE = 60+ fromEnum N_CLOSURE_TYPES = 61++ toEnum 0 = INVALID_OBJECT+ toEnum 1 = CONSTR+ toEnum 2 = CONSTR_1_0+ toEnum 3 = CONSTR_0_1+ toEnum 4 = CONSTR_2_0+ toEnum 5 = CONSTR_1_1+ toEnum 6 = CONSTR_0_2+ toEnum 7 = CONSTR_STATIC+ toEnum 8 = CONSTR_NOCAF_STATIC+ toEnum 9 = FUN+ toEnum 10 = FUN_1_0+ toEnum 11 = FUN_0_1+ toEnum 12 = FUN_2_0+ toEnum 13 = FUN_1_1+ toEnum 14 = FUN_0_2+ toEnum 15 = FUN_STATIC+ toEnum 16 = THUNK+ toEnum 17 = THUNK_1_0+ toEnum 18 = THUNK_0_1+ toEnum 19 = THUNK_2_0+ toEnum 20 = THUNK_1_1+ toEnum 21 = THUNK_0_2+ toEnum 22 = THUNK_STATIC+ toEnum 23 = THUNK_SELECTOR+ toEnum 24 = BCO+ toEnum 25 = AP+ toEnum 26 = PAP+ toEnum 27 = AP_STACK+ toEnum 28 = IND+ toEnum 29 = IND_PERM+ toEnum 30 = IND_STATIC+ toEnum 31 = RET_BCO+ toEnum 32 = RET_SMALL+ toEnum 33 = RET_BIG+ toEnum 34 = RET_FUN+ toEnum 35 = UPDATE_FRAME+ toEnum 36 = CATCH_FRAME+ toEnum 37 = UNDERFLOW_FRAME+ toEnum 38 = STOP_FRAME+ toEnum 39 = BLOCKING_QUEUE+ toEnum 40 = BLACKHOLE+ toEnum 41 = MVAR_CLEAN+ toEnum 42 = MVAR_DIRTY+ toEnum 43 = TVAR+ toEnum 44 = ARR_WORDS+ toEnum 45 = MUT_ARR_PTRS_CLEAN+ toEnum 46 = MUT_ARR_PTRS_DIRTY+ toEnum 47 = MUT_ARR_PTRS_FROZEN0+ toEnum 48 = MUT_ARR_PTRS_FROZEN+ toEnum 49 = MUT_VAR_CLEAN+ toEnum 50 = MUT_VAR_DIRTY+ toEnum 51 = WEAK+ toEnum 52 = PRIM+ toEnum 53 = MUT_PRIM+ toEnum 54 = TSO+ toEnum 55 = STACK+ toEnum 56 = TREC_CHUNK+ toEnum 57 = ATOMICALLY_FRAME+ toEnum 58 = CATCH_RETRY_FRAME+ toEnum 59 = CATCH_STM_FRAME+ toEnum 60 = WHITEHOLE+ toEnum 61 = N_CLOSURE_TYPES+ toEnum n = error ("toEnum: ClosureType: invalid ClosureType: " ++ show n)+
src/GHC/Vacuum/Internal.hs view
@@ -24,6 +24,8 @@ import Prelude hiding (mod) import Data.Char import Data.Word+import Control.Applicative (Applicative(..))+import Control.Monad (ap) import Control.Monad.Fix import Foreign @@ -185,6 +187,9 @@ newtype S s a = S {unS :: forall o. (a -> s -> IO o) -> s -> IO o} instance Functor (S s) where fmap f (S g) = S (\k -> g (k . f))+instance Applicative (S s) where+ pure = return+ (<*>) = ap instance Monad (S s) where return a = S (\k -> k a) S g >>= f = S (\k -> g (\a -> unS (f a) k))
vacuum.cabal view
@@ -1,5 +1,5 @@ name: vacuum-version: 2.1.0.1+version: 2.2.0.0 synopsis: Graph representation of the GHC heap description: Vacuum is a library for extracting graph representations of values@@ -58,6 +58,8 @@ exposed-modules: GHC.Vacuum.ClosureType.V704 if impl(ghc == 7.6.*) exposed-modules: GHC.Vacuum.ClosureType.V706+ if impl(ghc == 7.8.*)+ exposed-modules: GHC.Vacuum.ClosureType.V708 hs-source-dirs: src ghc-options: -Wall -O2 -fwarn-tabs -funbox-strict-fields