More accurate allocation stats for :set +s
authorSimon Marlow <marlowsd@gmail.com>
Fri, 8 May 2015 14:28:40 +0000 (15:28 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Mon, 11 May 2015 11:46:17 +0000 (12:46 +0100)
commitcf7573b8207bbb17c58612f3345e0b17d74cfb58
tree93321c1def706be49644ac30c05bc5251b041d62
parent2666ba369f8d3e7d187876b7b602d42f2d6db381
More accurate allocation stats for :set +s

The point of this commit is to make the memory allocation statistic
from :set +s in GHCi a lot more accurate.  Currently it uses the total
allocation figure calculated by the RTS, which is only updated during
GC, so can be wrong by an arbitrary amount.  The fix is to the the
per-thread allocation counter that was introduced for allocation
limits.

This required changes to the GHC API, because we now have to return
the allocation value from each evaluation.  Rather than just change
the API, I introduced a new API and deprecated the old one.  The new
one is simpler and more extensible, so hopefully we won't need to make
this transition in the future.  See GHC.hs for details.
compiler/main/GHC.hs
compiler/main/InteractiveEval.hs
compiler/main/InteractiveEvalTypes.hs
ghc/GhciMonad.hs
ghc/InteractiveUI.hs
testsuite/tests/ghc-api/T8628.hs
testsuite/tests/ghc-api/T8639_api.hs
testsuite/tests/ghc-api/apirecomp001/myghc.hs