[GHC] #10711: Defining mapM_ in terms of traverse_ causes substantial blow-up in ByteCodeAsm

GHC ghc-devs at haskell.org
Mon Aug 3 16:09:56 UTC 2015


#10711: Defining mapM_ in terms of traverse_ causes substantial blow-up in
ByteCodeAsm
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                   Owner:  bgamari
            Type:  bug               |                  Status:  closed
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:
      Resolution:  fixed             |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |               Test Case:  ghcirun004
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------
Changes (by bgamari):

 * cc: core-libraries-committee@… (added)
 * status:  new => closed
 * resolution:   => fixed


Comment:

 Thanks akio for the analysis!

 It seems pretty clear that rewriting `mapM_` in terms of `traverse_` does
 not preserve the performance characteristics of user code in general. I'm
 going to close this and push the matter off to the Core Libraries
 Committee to decide what implications this might have on their future
 plans (likely few given they already
 [https://mail.haskell.org/pipermail/libraries/2015-May/025719.html
 suspected] there was the potential for performance regressions with this
 change).

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


More information about the ghc-tickets mailing list