[GHC] #6166: Performance regression in mwc-random since 7.0.x

GHC ghc-devs at haskell.org
Wed Jan 4 18:56:06 UTC 2017


#6166: Performance regression in mwc-random since 7.0.x
-------------------------------------+-------------------------------------
        Reporter:  bos               |                Owner:
            Type:  bug               |               Status:  closed
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  7.4.2
      Resolution:  fixed             |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:  x86_64
 Type of failure:  Runtime           |  (amd64)
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by rwbarton):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 The original version of mwc-random and the minimized test cases in the
 comments are a bit fragile, in that they rely crucially on `blocks` being
 floated out of the IO action which contains it, ideally to top level. I'm
 not sure why, but GHC 7.8.4 isn't doing this floating out in the versions
 marked SLOW.

 For better or worse, GHC 7.10.1 does float out `blocks` to top level in
 the SLOW versions, and I also checked that it produces efficient code for
 the original version mwc-random-0.13.1.0 that prompted this report.
 Without a way to reproduce this in a recent version, I'm going to assert
 that the underlying issue was probably fixed between 7.8 and 7.10.

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


More information about the ghc-tickets mailing list