#10083: ghc: panic! (the 'impossible' happened) -------------------------------------+------------------------------------- Reporter: hedayaty | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: hs-boot Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by ezyang): Simon, re the performance problem, I'm no inliner expert but I think the problem is that you're always giving declarations which occur in the hs- boot file "never inline", even when it's totally inappropriate. For example, rewrite `eqRSR` to unconditionally return `True` and you'll still get: {{{ -- RHS size: {terms: 9, types: 6, coercions: 0} eqRSR [InlPrag=[NEVER]] :: RSR -> RSR -> Bool [GblId, Arity=2, Caf=NoCafRefs, Str=<S,1*H><S,1*H>] eqRSR = \ (ds_d1H9 :: RSR) (ds1_d1Ha :: RSR) -> case ds_d1H9 of { MkRSR s1_aKA -> case ds1_d1Ha of { MkRSR s2_aKB -> GHC.Types.True } } }}} I bet it's failure to inline for clients of RSR.hs which is causing the performance degradation. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10083#comment:23> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler