[GHC] #14683: Hole-y partial type signatures lead to slow compile times

GHC ghc-devs at haskell.org
Thu Jan 18 21:09:03 UTC 2018


#14683: Hole-y partial type signatures lead to slow compile times
-------------------------------------+-------------------------------------
        Reporter:  harpocrates       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.2.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Description changed by harpocrates:

Old description:

> This came up while investigating the compile times of Happy grammars:
> https://github.com/simonmar/happy/issues/109. GHC 8 and later take a lot
> longer to compile grammars with types that rely on
> `PartialTypeSignatures` and have lots of wildcards. Example:
>
> {{{#!hs
> happyReduce_6
>   :: ()
>   => Happy_GHC_Exts.Int#
>   -> L Token
>   -> Happy_GHC_Exts.Int#
>   -> Happy_IntList
>   -> HappyStk (HappyAbsSyn _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
>   -> ParserMonad (HappyAbsSyn _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
> }}}
>
> There is an example repo (https://github.com/wiz/too-happy) in that
> thread containing a grammar whose generated code has lots of wildcards.
>
> On my laptop, the project takes about 25 seconds to compile on 7.10.3.
> With 8.0.2, 8.2.2, and HEAD it takes on the order of 4 minutes.

New description:

 This came up while investigating the compile times of Happy grammars:
 https://github.com/simonmar/happy/issues/109. GHC 8 and later take a lot
 longer to compile ~~grammars with types that rely on
 `PartialTypeSignatures` and have lots of wildcards~~.

 There is an example repo (https://github.com/wiz/too-happy) in that thread
 containing a grammar whose generated code has lots of wildcards.

 On my laptop, the project takes about 25 seconds to compile on 7.10.3.
 With 8.0.2, 8.2.2, and HEAD it takes on the order of 4 minutes.

--

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


More information about the ghc-tickets mailing list