packages feed

eventlog2html 0.11.1 → 0.12.0

raw patch · 7 files changed

+30/−13 lines, 7 filesdep ~ghc-eventsPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: ghc-events

API changes (from Hackage documentation)

- Eventlog.Types: [tickyCtrSampleId, tickyCtrEntries, tickyCtrAllocs, tickyCtrAllocd] :: TickySample -> Word64
+ Eventlog.Types: FromEventlog :: Maybe HeapProfBreakdown -> ProfileType
+ Eventlog.Types: FromHPFile :: ProfileType
+ Eventlog.Types: HeapProfBreakdownEra :: HeapProfBreakdown
+ Eventlog.Types: [tickyCtrAllocd] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrAllocs] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrEntries] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrSampleId] :: TickySample -> Word64
+ Eventlog.Types: data ProfileType
+ Eventlog.Types: instance GHC.Show.Show Eventlog.Types.ProfileType
- Eventlog.Types: Header :: Text -> Text -> Maybe HeapProfBreakdown -> Text -> Text -> Text -> Int -> Maybe FilePath -> Header
+ Eventlog.Types: Header :: Text -> Text -> ProfileType -> Text -> Text -> Text -> Int -> Maybe FilePath -> Header
- Eventlog.Types: TickySample :: Word64 -> Double -> TickySample
+ Eventlog.Types: TickySample :: Word64 -> Word64 -> Word64 -> Word64 -> Double -> TickySample
- Eventlog.Types: [hHeapProfileType] :: Header -> Maybe HeapProfBreakdown
+ Eventlog.Types: [hHeapProfileType] :: Header -> ProfileType
- Eventlog.Types: data () => ClosureType
+ Eventlog.Types: data ClosureType
- Eventlog.Types: data () => HeapProfBreakdown
+ Eventlog.Types: data HeapProfBreakdown

Files

CHANGELOG.md view
@@ -1,3 +1,9 @@+0.12.0 release 2024-06-03+-------------------------++* Fix rendering of .hp profiles (#191)+* Add support for eras profiling+ 0.11.1 release 2024-08-17 ------------------------- 
eventlog2html.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 Name:                eventlog2html-Version:             0.11.1+Version:             0.12.0 Synopsis:            Visualise an eventlog Description:         eventlog2html is a library for visualising eventlogs.                      At the moment, the intended use is to visualise eventlogs@@ -32,7 +32,7 @@   inline-docs/*.html extra-doc-files: README.md                  CHANGELOG.md-Tested-With:         GHC ==9.0.2, GHC ==9.2.7, GHC ==9.4.7, GHC ==9.6.2, GHC ==9.8.1, GHC==9.10.1+Tested-With:         GHC ==9.6.7, GHC ==9.8.4, GHC==9.10.2, GHC==9.12.2  Library   Build-depends:@@ -46,10 +46,10 @@     containers           >= 0.5.0 && < 0.8,     file-embed           >= 0.0.11 && < 0.1,     filepath             >= 1.4.2 && < 1.6,-    ghc-events           >= 0.19.0 && < 0.20,+    ghc-events           >= 0.20.0 && < 0.21,     ghc-heap             >= 9 && < 10,-    hashable             >= 1.0 && < 1.5,-    hashtables           >= 1.2.3 && < 1.4,+    hashable             >= 1.0 && < 1.6,+    hashtables           >= 1.2.3 && < 1.5,     hvega                >= 0.11.0 && < 0.13,     mtl                  >= 2.2.2 && < 2.4,     optparse-applicative >= 0.14.3 && < 0.19,
src/Eventlog/Data.hs view
@@ -40,11 +40,11 @@         sortBy (flip (comparing (fst . snd))) $ Map.toList keeps       -- Only supply the cost centre view in cost centre profiling mode.       cc_descs = case hHeapProfileType h of-                Just HeapProfBreakdownCostCentre -> Just (outputTree ccMap mdescs)+                (FromEventlog (Just HeapProfBreakdownCostCentre)) -> Just (outputTree ccMap mdescs)                 _ -> Nothing        use_ipes = case hHeapProfileType h of-                   Just HeapProfBreakdownInfoTable -> Just ipes+                   (FromEventlog (Just HeapProfBreakdownInfoTable)) -> Just ipes                    _ -> Nothing        -- If we have IPE info, try to translate info table pointers to names
src/Eventlog/Events.hs view
@@ -344,7 +344,7 @@   let title = maybe "" T.unwords pargs       date = formatDate clocktimeSec       ppSamplingRate = T.pack . maybe "<Not available>" (show . fromNano) $ samplingRate-  in \v -> Header title date heapProfileType ppSamplingRate "" "" v (T.unpack . head <$> pargs)+  in \v -> Header title date (FromEventlog heapProfileType) ppSamplingRate "" "" v (T.unpack . head <$> pargs)   elBucketMap :: EL -> BucketMap
src/Eventlog/HeapProf.hs view
@@ -27,7 +27,7 @@       [job, date, smpU, valU] =         zipWith header [sJOB, sDATE, sSAMPLE_UNIT, sVALUE_UNIT] hs       fs = chunkSamples ss-  in  (\v -> Header job date Nothing (pack "") smpU valU v Nothing+  in  (\v -> Header job date FromHPFile (pack "") smpU valU v Nothing       ,  fs       ) 
src/Eventlog/HtmlTemplate.hs view
@@ -19,7 +19,7 @@ import Eventlog.Data import Eventlog.Javascript import Eventlog.Args-import Eventlog.Types (Header(..), HeapProfBreakdown(..))+import Eventlog.Types (Header(..), HeapProfBreakdown(..), ProfileType(..)) import Eventlog.Rendering.Bootstrap import Eventlog.Rendering.Types import Eventlog.VegaTemplate@@ -162,11 +162,15 @@ perTabFooter header' = do     H.div ! class_ "row" $ do       H.div ! class_ "col" $ do-          toHtml $ maybe "No heap profile" ppHeapProfileType (hHeapProfileType header')+          toHtml $ render_type (hHeapProfileType header')           ", created at "           code $ toHtml $ hDate header'           " by "           code $ toHtml $ hJob header'+  where+    render_type FromHPFile              = "heap profile"+    render_type (FromEventlog Nothing)  = "No heap profile"+    render_type (FromEventlog (Just t)) = ppHeapProfileType t   select_data :: IncludeTraceData -> ChartType -> [Text]@@ -223,6 +227,7 @@ ppHeapProfileType (HeapProfBreakdownBiography) = "Biographical profiling (implied by -hb)" ppHeapProfileType (HeapProfBreakdownClosureType) = "Basic heap profile (implied by -hT)" ppHeapProfileType (HeapProfBreakdownInfoTable) = "Info table profile (implied by -hi)"+ppHeapProfileType (HeapProfBreakdownEra) = "Era profile (implied by -he)"   allTabs :: EventlogType@@ -248,7 +253,11 @@             " seconds between heap samples"  has_heap_profile :: Header -> Bool-has_heap_profile h = isJust (hHeapProfileType h)+has_heap_profile h =+  case (hHeapProfileType h) of+    FromHPFile -> True+    FromEventlog t -> isJust t+  allHeapTabs :: Header -> Args -> HeapProfileData -> [TabGroup] allHeapTabs header' as x =
src/Eventlog/Types.hs view
@@ -19,13 +19,15 @@   Header   { hJob         :: Text   , hDate        :: Text-  , hHeapProfileType :: Maybe HeapProfBreakdown+  , hHeapProfileType :: ProfileType   , hSamplingRate :: Text   , hSampleUnit  :: Text   , hValueUnit   :: Text   , hCount       :: Int   , hProgPath    :: Maybe FilePath   } deriving Show++data ProfileType = FromHPFile | FromEventlog (Maybe HeapProfBreakdown) deriving Show   -- The bucket is a key to uniquely identify a band