ghcprofview 0.1.0.1 → 0.1.0.2
raw patch · 2 files changed
+38/−34 lines, 2 filesdep ~gi-gtk
Dependency ranges changed: gi-gtk
Files
- ghcprofview.cabal +4/−4
- src/Types.hs +34/−30
ghcprofview.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0.+-- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack ----- hash: 1af11545e3da13219f5e775588be3ada381d8abd4cee98035bc3d0891a341388+-- hash: 4b0ac2e3a7a39025f611df924cc5a484d6252971530914ef195dbb85ffc42a2b name: ghcprofview-version: 0.1.0.1+version: 0.1.0.2 synopsis: GHC .prof files viewer description: Please see the README on GitHub at <https://github.com/portnov/ghcprofview-hs#readme> category: Development@@ -48,7 +48,7 @@ , base >=4.7 && <5 , containers , ghc-prof- , gi-gtk+ , gi-gtk <4 , haskell-gi-base , mtl >=2.2 , regex-tdfa
src/Types.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-}+{-# LANGUAGE TypeApplications #-} module Types where @@ -33,23 +34,26 @@ show (AggregatedId set) = show set instance IsGValue Int where- toGValue x = toGValue (fromIntegral x :: Int64)- fromGValue v = fromIntegral `fmap` (fromGValue v :: IO Int64)+ gvalueGType_ = gvalueGType_ @Int64+ gvalueSet_ ptr v = gvalueSet_ ptr (fromIntegral v :: Int64)+ gvalueGet_ v = fromIntegral `fmap` (gvalueGet_ v :: IO Int64) instance IsGValue Integer where- toGValue x = toGValue (fromIntegral x :: Int64)- fromGValue v = fromIntegral `fmap` (fromGValue v :: IO Int64)+ gvalueGType_ = gvalueGType_ @Int64+ gvalueSet_ ptr v = gvalueSet_ ptr (fromIntegral v :: Int64)+ gvalueGet_ v = fromIntegral `fmap` (gvalueGet_ v :: IO Int64) instance IsGValue Scientific where- toGValue x = toGValue (toRealFloat x :: Double)- fromGValue v = fromFloatDigits `fmap` (fromGValue v :: IO Double)+ gvalueGType_ = gvalueGType_ @Double+ gvalueSet_ ptr v = gvalueSet_ ptr (toRealFloat v :: Double)+ gvalueGet_ v = fromFloatDigits `fmap` (gvalueGet_ v :: IO Double) data CostCentreData = CostCentreData {- ccdProfile :: ! Profile+ ccdProfile :: !Profile , ccdParent :: Maybe CostCentreData- , ccdRecords :: ! [ProfileRecord Individual]- , ccdCostCentre :: ! CostCentre- , ccdChildren :: ! [CostCentreData]+ , ccdRecords :: ![ProfileRecord Individual]+ , ccdCostCentre :: !CostCentre+ , ccdChildren :: ![CostCentreData] } deriving (Show) @@ -58,23 +62,23 @@ treeChildren = ccdChildren data CostCentre = CostCentre {- ccLabel :: ! T.Text- , ccId :: ! Id- , ccModule :: ! T.Text- , ccSource :: ! T.Text- , ccIsCaf :: ! Bool+ ccLabel :: !T.Text+ , ccId :: !Id+ , ccModule :: !T.Text+ , ccSource :: !T.Text+ , ccIsCaf :: !Bool } deriving (Eq, Show) data ProfileRecord s = ProfileRecord {- prCcId :: ! (RecordId s)- , prEntries :: ! Integer- , prTicks :: ! (Maybe Integer) -- ^ If present in input file- , prAlloc :: ! (Maybe Integer) -- ^ If present in input file- , prTimeIndividual :: ! (Maybe Double) -- ^ If present in input file- , prAllocIndividual :: ! (Maybe Double) -- ^ If present in input file- , prTimeInherited :: ! (Maybe Double) -- ^ If present in input file- , prAllocInherited :: ! (Maybe Double) -- ^ If present in input file+ prCcId :: !(RecordId s)+ , prEntries :: !Integer+ , prTicks :: !(Maybe Integer) -- ^ If present in input file+ , prAlloc :: !(Maybe Integer) -- ^ If present in input file+ , prTimeIndividual :: !(Maybe Double) -- ^ If present in input file+ , prAllocIndividual :: !(Maybe Double) -- ^ If present in input file+ , prTimeInherited :: !(Maybe Double) -- ^ If present in input file+ , prAllocInherited :: !(Maybe Double) -- ^ If present in input file } deriving (Show) @@ -86,13 +90,13 @@ listRecordId (ProfileRecord {prCcId = AggregatedId set}) = IS.toList set data Profile = Profile {- profileProgram :: ! T.Text- , profileTotalTime :: ! Double- , profileRtsArguments :: ! [T.Text]- , profileInitCaps :: ! Int32- , profileTickInterval :: ! Int32- , profileTotalAlloc :: ! Integer- , profileTotalTicks :: ! Integer+ profileProgram :: !T.Text+ , profileTotalTime :: !Double+ , profileRtsArguments :: ![T.Text]+ , profileInitCaps :: !Int32+ , profileTickInterval :: !Int32+ , profileTotalAlloc :: !Integer+ , profileTotalTicks :: !Integer , profileTree :: Tree (ProfileRecord Individual) , profileTreeMap :: IM.IntMap (Tree (ProfileRecord Individual)) , profileCostCentres :: IM.IntMap CostCentre