[GHC] #9198: large performance regression in type checker speed in 7.8

GHC ghc-devs at haskell.org
Thu Jun 12 02:24:54 UTC 2014


#9198: large performance regression in type checker speed in 7.8
-------------------------------------------------+-------------------------
        Reporter:  carter                        |            Owner:
            Type:  bug                           |           Status:  new
        Priority:  high                          |        Milestone:
       Component:  Compiler (Type checker)       |          Version:  7.8.2
      Resolution:                                |         Keywords:
Operating System:  Unknown/Multiple              |     Architecture:
 Type of failure:  Compile-time performance bug  |  Unknown/Multiple
       Test Case:                                |       Difficulty:
        Blocking:                                |  Unknown
                                                 |       Blocked By:
                                                 |  Related Tickets:
-------------------------------------------------+-------------------------

Comment (by goldfire):

 With typos removed and types added, this looks like

 {{{
 begin :: Monad m => (m () -> t) -> t
 begin cont = cont (return ())

 a :: IO a -> (IO () -> t) -> t
 a m cont = cont (m >> putStrLn "a")

 end :: t -> t
 end m = m

 main = begin a a a a a a a a a a a a a a a a a a a a end
 }}}

 Including the type signatures does not improve performance.

 Great example case -- this does indeed need to be fixed.

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


More information about the ghc-tickets mailing list