Name: ghc-heap-view Version: 0.5.3 Synopsis: Extract the heap representation of Haskell values and thunks Description: This library provides functions to introspect the Haskell heap, for example to investigate sharing and lazy evaluation. . It has been inspired by (and taken code from) the vacuum package and the GHCi debugger, but also allows to investiage thunks and other closures. . This package also provides a new GHCi-command, @:printHeap@, which allows you to inspect the current heap representation of a value, including sharing and cyclic references. To enable the command, you need to load the included ghci script or add it to @~/.ghci@, as explained by @cabal install@. Once it is set up, you can do this: . >> let value = "A Value" >> let x = (value, if head value == 'A' then value else "", cycle [True, False]) >> :printHeap x >let x1 = _bco > x21 = [] >in (x1,_bco,_bco) >> length (take 100 (show x)) `seq` return () -- evaluate everything >> :printHeap x >let x1 = "A Value" > x16 = True : False : x16 >in (x1,x1,x16) . You can change the maximum recursion depth using @:setPrintHeapDepth@: . >> :setPrintHeapDepth 3 >> :printHeap x >let x1 = C# 'A' : ... : ... >in (x1,x1,True : ... : ...) . If the view is impaired by blackholes (written @_bh@), running @System.Mem.performGC@ usually helps. . The work on this package has been supported by the Deutsche Telekom Stiftung (). License: BSD3 License-file: LICENSE Author: Joachim Breitner, Dennis Felsing Maintainer: Joachim Breitner Copyright: 2012-2014 Joachim Breitner bug-reports: https://github.com/nomeata/ghc-heap-view Category: Debug, GHC Build-type: Custom Cabal-version: >=1.14 Extra-source-files: Demo.hs data-files: ghci Flag prim-supports-any Description: The used GHC supports Any as an argument to foreign prim functions (GHC ticket #5931) Default: False Flag ghc_7_7 Library Default-Language: Haskell2010 Exposed-modules: GHC.HeapView GHC.AssertNF GHC.Disassembler GHC.HeapView.Debug Build-depends: base >= 4.5 && < 4.8, containers, transformers, template-haskell, bytestring >= 0.10, binary if flag(ghc_7_7) build-depends: ghc >= 7.7 cc-options: -DGHC_7_7 cpp-options: -DGHC_7_7 else build-depends: ghc < 7.7 C-Sources: cbits/HeapView.c cbits/HeapViewPrim.cmm Hs-source-dirs: src/ Ghc-options: -Wall default-language: Haskell2010 if flag(prim-supports-any) cpp-options: -DPRIM_SUPPORTS_ANY test-suite Test type: exitcode-stdio-1.0 main-is: Test.hs build-depends: base, ghc-heap-view, deepseq default-language: Haskell2010 Ghc-options: -O0 source-repository head type: git location: git://git.nomeata.de/ghc-heap-view.git subdir: Cabal