[GHC] #12506: Compile time regression in GHC 8.

GHC ghc-devs at haskell.org
Sat Oct 22 21:33:47 UTC 2016


#12506: Compile time regression in GHC 8.
-------------------------------------+-------------------------------------
        Reporter:  deech             |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Looking at the desugared Core of `Tree` (which is 2.4 gigabytes!) it seems
 we end up with lots of equivalent yet repeated equality coercions at the
 top level. For instance, there are 64 coercions of the form,
 {{{#!hs
 -- RHS size: {terms: 2, types: 22, coercions: 691}
 $d~_aDMR
   :: (Match
         (Graphics.UI.FLTK.LowLevel.Hierarchy.CMenuItem Base) :: *)
      ~
      (FindOp MenuItem MenuItem (SetLabelsize ()) :: *)
 }}}

 However, it turns out that this is a drop in the bucket compared to,
 {{{
 -- RHS size: {terms: 8,634, types: 10,620, coercions: 1,621,550}
 make_window :: IO (Ref Window)
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12506#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list