[GHC] #10052: Panic (something to do with floatExpr?)
GHC
ghc-devs at haskell.org
Fri Feb 6 15:07:00 UTC 2015
#10052: Panic (something to do with floatExpr?)
-------------------------------------+-------------------------------------
Reporter: edsko | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.1-rc2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: None/Unknown | Unknown/Multiple
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by simonpj):
Peter says (further)
> Why do you say "we are clearly trying to float past a breakpoint"? Why
is it so clear?
It's the only kind of `Tickish` that is scoped, counting and not
splittable.
This means that we can't
* Simply float code out of it, because the payload must still be covered
(scoped)
* Copy the tick, because it would change entry counts (here: duplicate
breakpoints)
> Why is it wrong to float a lazy thunk out of a breakpoint?
Good questions - I haven't given breakpoint semantics a lot of thought, to
be honest. My assumption was that most optimisation passes would never see
them. And where they did, they should just leave them in peace as much as
possible.
For whatever it's worth, the source cautions against making breakpoints
unscoped:
{{{
-- Breakpoints are scoped: eventually we're going to do call
-- stacks, but also this helps prevent the simplifier from moving
-- breakpoints around and changing their result type (see #1531).
}}}
Hm. We might try to make them pseudo-splittable, with non-counting
breakpoints being NOPs for now? This might still allow us to implement
breakpoint-based stack traces if we really want them...
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10052#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list