[GHC] #14052: Significant GHCi speed regression with :module and `let` in GHC 8.2.1

GHC ghc-devs at haskell.org
Wed Mar 7 10:19:34 UTC 2018


#14052: Significant GHCi speed regression with :module and `let` in GHC 8.2.1
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  osa1
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.4.2
       Component:  GHCi              |              Version:  8.2.1-rc2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #11547            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by osa1):

 Here's an even simpler reproducer: just repeat this line a few thousand
 times in a .script file:

 {{{
 let x = 1 :: Int
 }}}

 Then run

 {{{
 $ time (echo ":quit" | ghci -ghci-script Example.script Foo.hs >/dev/null
 2>&1)
 }}}

 Results:

 {{{
 GHC 8.0.2 2000 repetitions:  1,04s
 GHC 8.0.2 4000 repetitions:  2,06s
 GHC 8.0.2 8000 repetitions:  4,02s

 GHC 8.2.2 2000 repetitions:  2,17s
 GHC 8.2.2 4000 repetitions:  6,31s
 GHC 8.2.2 8000 repetitions: 21,39s
 }}}

 Demonstrates that adding a new shadowing binding is a constant time
 operation in GHC 8.0.2, but it's not constant time in GHC 8.2.2.

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


More information about the ghc-tickets mailing list