[GHC] #13104: runRW# ruins join points

GHC ghc-devs at haskell.org
Mon Feb 6 04:14:16 UTC 2017


#13104: runRW# ruins join points
-------------------------------------+-------------------------------------
        Reporter:  lukemaurer        |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by akio):

 * cc: akio (added)


Comment:

 Would it be possible to reimplement `runRW#` as a magic function with a
 compulsory unfolding, so that `runRW# f` expands to the following?

 {{{#!hs
 join
   $j s = f s
   {-# NOINLINE $j #-}
 in jump $j realWorld#
 }}}

 This would not only close this ticket but also allow other optimizations
 like pushing a `case` into the body of `f`.

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


More information about the ghc-tickets mailing list