[GHC] #10052: Panic (something to do with floatExpr?)

Simon Peyton Jones simonpj at microsoft.com
Thu Feb 5 10:45:45 UTC 2015


(Simon Marlow, can you help?)

I don't understand how breakpoints work.   

Why do you say "we are clearly trying to float past a breakpoint"?  Why is it so clear?

Why is it wrong to float a lazy thunk out of a breakpoint?

The float-out pass really doesn't have anywhere else where we say "you really can't float anything out of this subexpression, not even top-level constant expressions".

Simon

| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Peter
| Wortmann
| Sent: 04 February 2015 17:24
| To: ghc-devs at haskell.org
| Subject: Re: [GHC] #10052: Panic (something to do with floatExpr?)
| 
| 
| 
| We are clearly trying to float past a breakpoint here, which is simply
| impossible. Pretty sure this would have been a panic before my changes
| too (it would have tried to "mkNoCount" the breakpoint). Guess I was
| wrong reading a "breakpoints don't appear here" invariant out of that...
| 
| The quick fix would be to drop all floats in-place:
| 
|    -- scoped, counting and unsplittable, can't be floated through
|    | otherwise
|    = floatBody tOP_LEVEL expr
| 
| This fixes the panic, but is a bit awkward. Probably better to change
| SetLevels? Not a piece of code I'm very familiar with...
| 
| Greetings,
|    Peter
| 
| On 04/02/2015 13:31, Simon Peyton Jones wrote:
| > Peter:
| >
| > Here's a bad crash, due to you.   (Doing this by email because I'm
| offline.)
| >
| > The (Tick t e) case of FloatOut.floatExpr is incomplete.  It simply
| panics in some cases.
| >
| > Could you fix this please?  Either that case shouldn't happen, in which
| case Core Lint should check for it, and whoever is generating it should
| be fixed.  Or it should happen, in which case floatExpr should do the
| right thing.
| >
| > Could you leave a Note to explain what is happening in the floatExpr
| (Tick ...) cases?
| >
| > Thanks
| >
| > Simon
| >
| > | -----Original Message-----
| > | From: ghc-tickets [mailto:ghc-tickets-bounces at haskell.org] On Behalf
| Of
| > | GHC
| > | Sent: 31 January 2015 17:38
| > | Cc: ghc-tickets at haskell.org
| > | Subject: [GHC] #10052: Panic (something to do with floatExpr?)
| > |
| > | #10052: Panic (something to do with floatExpr?)
| > | -------------------------------------+-------------------------------
| ----
| > | --
| > |               Reporter:  edsko       |             Owner:
| > |                   Type:  bug         |            Status:  new
| > |               Priority:  normal      |         Milestone:
| > |              Component:  Compiler    |           Version:  7.10.1-rc2
| > |               Keywords:              |  Operating System:
| > | Unknown/Multiple
| > |           Architecture:              |   Type of failure:
| None/Unknown
| > |   Unknown/Multiple                   |        Blocked By:
| > |              Test Case:              |   Related Tickets:
| > |               Blocking:              |
| > | Differential Revisions:              |
| > | -------------------------------------+-------------------------------
| ----
| > | --
| > |  Loading
| > |
| > |  {{{
| > |  main = let (x :: String) = "hello" in putStrLn x
| > |  }}}
| > |
| > |  using a very simple driver for the GHC API (see T145.hs) causes a
| ghc
| > |  panic:
| > |
| > |  {{{
| > |  [1 of 1] Compiling Main             ( T145-input.hs, interpreted )
| > |  T145: T145: panic! (the 'impossible' happened)
| > |    (GHC version 7.10.0.20150128 for x86_64-apple-darwin):
| > |          floatExpr tick
| > |  <<details unavailable>>
| > |
| > |  Please report this as a GHC bug:
| http://www.haskell.org/ghc/reportabug
| > |  }}}
| > |
| > |  This panic is arising in our test case for #8333, so it may be
| related
| > | to
| > |  that bug.
| > |
| > | --
| > | Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10052>
| > | GHC <http://www.haskell.org/ghc/>
| > | The Glasgow Haskell Compiler
| > | _______________________________________________
| > | ghc-tickets mailing list
| > | ghc-tickets at haskell.org
| > | http://www.haskell.org/mailman/listinfo/ghc-tickets
| >
| 
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-devs


More information about the ghc-devs mailing list