cabal-version: 2.2 name: ghc-events-analyze version: 0.2.9 synopsis: Analyze and visualize event logs description: ghc-events-analyze is a simple Haskell profiling tool that uses GHC's eventlog system. It helps with some profiling use cases that are not covered by the existing GHC profiling modes or tools. It has two major features: . 1. While ThreadScope shows CPU activity across all your cores, ghc-events-analyze shows CPU activity across all your Haskell threads. . 2. It lets you label periods of time during program execution (by instrumenting your code with special trace calls) and then lets you visualize those time periods or get statistics on them. . It is very useful for profiling code when ghc's normal profiling mode is not available, or when using profiling mode would perturb the code too much. It is also useful when you want time-profiling information with a breakdown over time rather than totals for the whole run. . The blog post describes the motivation in more detail. license: BSD-3-Clause license-file: LICENSE author: Edsko de Vries, Duncan Coutts, Mikolaj Konarski maintainer: edsko@well-typed.com copyright: 2013-2025 Well-Typed LLP category: Development, Profiling, Trace build-type: Simple extra-doc-files: ChangeLog tested-with: GHC==9.2.8 GHC==9.4.8 GHC==9.6.7 GHC==9.8.4 GHC==9.10.2 GHC==9.12.2 source-repository head type: git location: https://github.com/edsko/ghc-events-analyze common lang default-language: GHC2021 build-depends: base >= 4.16 && < 4.22 ghc-options: -Wall -Wredundant-constraints -Wunused-packages -Wprepositive-qualified-module -rtsopts default-extensions: DeriveAnyClass DerivingStrategies RecordWildCards ViewPatterns if impl(ghc >= 9.8) ghc-options: -Wno-x-partial executable ghc-events-analyze import: lang hs-source-dirs: src main-is: GHC/RTS/Events/Analyze.hs other-modules: GHC.RTS.Events.Analyze.Analysis GHC.RTS.Events.Analyze.Options GHC.RTS.Events.Analyze.Reports.Timed GHC.RTS.Events.Analyze.Reports.Timed.SVG GHC.RTS.Events.Analyze.Reports.Totals GHC.RTS.Events.Analyze.Script GHC.RTS.Events.Analyze.Script.Standard GHC.RTS.Events.Analyze.StrictState GHC.RTS.Events.Analyze.Types GHC.RTS.Events.Analyze.Utils build-depends: -- bundled libraries , containers >= 0.6 && < 0.8 , filepath >= 1.4 && < 1.6 , mtl >= 2.2 && < 2.4 , parsec >= 3.1 && < 3.2 , template-haskell >= 2.18 && < 2.24 , text >= 1.2 && < 2.2 , transformers >= 0.5 && < 0.7 build-depends: -- other external dependencies , diagrams-lib >= 1.5 && < 1.6 , diagrams-svg >= 1.5 && < 1.6 , ghc-events >= 0.20 && < 0.21 , hashable >= 1.4 && < 1.6 , lens >= 5.3 && < 5.4 , optparse-applicative >= 0.19 && < 0.20 , regex-pcre-builtin >= 0.95 && < 0.96 , SVGFonts >= 1.8 && < 1.9 , th-lift >= 0.8 && < 0.9 , th-lift-instances >= 0.1 && < 0.2 , unordered-containers >= 0.2 && < 0.3 other-extensions: TemplateHaskell QuasiQuotes common blogpost-examples import: lang ghc-options: -main-is BlogpostExamples hs-source-dirs: examples other-modules: Examples.Common Examples.Ex0 Examples.Ex0_Windowed Examples.Ex1 build-depends: , async >= 2.2 && < 2.3 test-suite blogpost-examples-nt import: blogpost-examples main-is: BlogpostExamples.hs type: exitcode-stdio-1.0 test-suite blogpost-examples-threaded import: blogpost-examples type: exitcode-stdio-1.0 main-is: BlogpostExamples.hs ghc-options: -threaded