[GHC] #3693: Show stack traces
GHC
ghc-devs at haskell.org
Thu Mar 13 18:22:16 UTC 2014
#3693: Show stack traces
-------------------------------------+------------------------------------
Reporter: jpet | Owner: Tarrasch
Type: feature request | Status: new
Priority: normal | Milestone: 7.10.1
Component: Runtime System | Version: 6.10.4
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
Comment (by scpmw):
Okay, I have now submitted an (hopefully) improved version:
https://github.com/scpmw/ghc/pull/6
The main new idea is that instead of `tickishScoped`+`tickishSoftScope`
and `tickishIgnoreCheap` respectively we now have two main tickish
properties:
- Scoping
([https://github.com/scpmw/ghc/commit/0798888f829fe527b7c03f7d73b1d04746183b64
#diff-90615b0b9a679ebb599d2cb8b2c0dcdeR519 Source]): Determines what
transformations are allowed with respect to covered code. The three levels
are `NoScope` for don't-care (= HPC ticks), `SoftScope` for no-float-out
and `CostCentreScope` for no-float-out plus no-float-in modulo lambdas.
- Placement
([https://github.com/scpmw/ghc/commit/0798888f829fe527b7c03f7d73b1d04746183b64
#diff-90615b0b9a679ebb599d2cb8b2c0dcdeR648 Source]): It occurred to me
that `mkTick` has a very similar problem with characterising where to
create ticks / what to automatically push them through. So I did basically
the same thing - the three levels here are `PlaceRuntime` which basically
floats through just type applications and casts, `PlaceNonLam` which
additionally floats through lambdas, and `PlaceCostCentre` which again
implements all the CC-specific rules (such as eliminating ticks on HNFs).
Note that the difference between `PlaceRuntime` and `PlaceNonLam` is
essentially `tickishCounts`. However, it's actually easier this way, as it
allows `mkTick` to do its work without having to care about
`tickishCounts` at all
([https://github.com/scpmw/ghc/commit/0798888f829fe527b7c03f7d73b1d04746183b64
#diff-3ff04cec4ec4aff71838022111551fb8R232 Source]).
Furthermore I tried to update all documentation and add more comments all
around. What is the last verdict on a Wiki page? Sorry if I'm a bit
reluctant about this, but I can't think of anything offhand that I would
want to put on a Wiki instead of into a code comment. Some more examples,
possibly?
Btw: A non-paywall link to the paper is
http://eprints.whiterose.ac.uk/76448/
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/3693#comment:68>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list