[commit: ghc] master: Add HeapView functionality (ec22f7d)
git at git.haskell.org
git at git.haskell.org
Sun May 20 15:43:21 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/ec22f7ddc81b40a9dbcf140e5cf44730cb776d00/ghc
>---------------------------------------------------------------
commit ec22f7ddc81b40a9dbcf140e5cf44730cb776d00
Author: Patrick Dougherty <patrick.doc at ameritech.net>
Date: Wed May 16 16:50:13 2018 -0400
Add HeapView functionality
This pulls parts of Joachim Breitner's ghc-heap-view library inside GHC.
The bits added are the C hooks into the RTS and a basic Haskell wrapper
to these C hooks. The main reason for these to be added to GHC proper
is that the code needs to be kept in sync with the closure types
defined by the RTS. It is expected that the version of HeapView shipped
with GHC will always work with that version of GHC and that extra
functionality can be layered on top with a library like ghc-heap-view
distributed via Hackage.
Test Plan: validate
Reviewers: simonmar, hvr, nomeata, austin, Phyx, bgamari, erikd
Reviewed By: bgamari
Subscribers: carter, patrickdoc, tmcgilchrist, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3055
>---------------------------------------------------------------
ec22f7ddc81b40a9dbcf140e5cf44730cb776d00
.gitignore | 1 +
compiler/ghc.cabal.in | 2 +-
compiler/ghci/ByteCodeLink.hs | 3 +-
compiler/ghci/ByteCodeTypes.hs | 2 +-
compiler/ghci/DebuggerUtils.hs | 132 -------
compiler/ghci/RtClosureInspect.hs | 259 +++++--------
compiler/prelude/primops.txt.pp | 9 +-
configure.ac | 2 +-
ghc.mk | 3 +-
includes/Rts.h | 1 +
includes/rts/storage/Heap.h | 18 +
libraries/ghc-heap/.gitignore | 5 +
libraries/ghc-heap/GHC/Exts/Heap.hs | 254 +++++++++++++
libraries/ghc-heap/GHC/Exts/Heap/ClosureTypes.hs | 98 +++++
libraries/ghc-heap/GHC/Exts/Heap/Closures.hs | 313 +++++++++++++++
libraries/ghc-heap/GHC/Exts/Heap/Constants.hsc | 16 +
libraries/ghc-heap/GHC/Exts/Heap/InfoTable.hsc | 77 ++++
.../ghc-heap/GHC/Exts/Heap/InfoTable/Types.hsc | 37 ++
libraries/ghc-heap/GHC/Exts/Heap/InfoTableProf.hsc | 73 ++++
libraries/ghc-heap/GHC/Exts/Heap/Utils.hsc | 128 +++++++
libraries/ghc-heap/LICENSE | 30 ++
libraries/{ghc-compact => ghc-heap}/Setup.hs | 0
libraries/ghc-heap/cbits/HeapPrim.cmm | 13 +
libraries/ghc-heap/ghc-heap.cabal.in | 38 ++
libraries/{base => ghc-heap}/tests/Makefile | 0
libraries/ghc-heap/tests/all.T | 8 +
libraries/ghc-heap/tests/heap_all.hs | 421 +++++++++++++++++++++
libraries/ghc-heap/tests/heap_all.stdout | 1 +
libraries/ghci/GHCi/InfoTable.hsc | 137 ++-----
libraries/ghci/GHCi/Message.hs | 2 +-
libraries/ghci/ghci.cabal.in | 1 +
rts/Heap.c | 220 +++++++++++
rts/PrimOps.cmm | 88 ++---
rts/rts.cabal.in | 2 +
testsuite/tests/ghc-api/T4891/T4891.hs | 24 +-
35 files changed, 1935 insertions(+), 483 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc ec22f7ddc81b40a9dbcf140e5cf44730cb776d00
More information about the ghc-commits
mailing list