diff options
author | Simon Marlow <marlowsd@gmail.com> | 2016-12-20 14:32:11 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2017-01-06 15:53:36 +0000 |
commit | 3a18baff06abc193569b1b76358da26375b3c8d6 (patch) | |
tree | c80e30dc27fb548eca50b9697d1fdd2a248a891a /rts/Printer.c | |
parent | 508811004d1806b28a91c3ff4a5c2247e2ad4655 (diff) | |
download | haskell-3a18baff06abc193569b1b76358da26375b3c8d6.tar.gz |
More fixes for #5654
* In stg_ap_0_fast, if we're evaluating a thunk, the thunk might
evaluate to a function in which case we may have to adjust its CCS.
* The interpreter has its own implementation of stg_ap_0_fast, so we
have to do the same shenanigans with creating empty PAPs and copying
PAPs there.
* GHCi creates Cost Centres as children of CCS_MAIN, which enterFunCCS()
wrongly assumed to imply that they were CAFs. Now we use the is_caf
flag for this, which we have to correctly initialise when we create a
Cost Centre in GHCi.
Diffstat (limited to 'rts/Printer.c')
-rw-r--r-- | rts/Printer.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/rts/Printer.c b/rts/Printer.c index f23e0b0636..87b11e80d8 100644 --- a/rts/Printer.c +++ b/rts/Printer.c @@ -526,6 +526,11 @@ printStackChunk( StgPtr sp, StgPtr spBottom ) fprintCCS(stderr, (CostCentreStack*)sp[1]); debugBelch("\n" ); continue; + } else if (c == (StgWord)&stg_restore_cccs_eval_info) { + debugBelch("stg_restore_cccs_eval_info\n" ); + fprintCCS(stderr, (CostCentreStack*)sp[1]); + debugBelch("\n" ); + continue; #endif } else { debugBelch("RET_SMALL (%p)\n", info); |