[GHC] #13104: runRW# ruins join points

GHC ghc-devs at haskell.org
Wed Oct 24 10:26:59 UTC 2018


#13104: runRW# ruins join points
-------------------------------------+-------------------------------------
        Reporter:  lukemaurer        |                Owner:  chessai
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.8.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:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Primops are intended to reflect machine operations that simply cannot be
 expressed more simply in Haskell (at least not efficiently): e.g. add two
 `Int#` values.

 Things like `unsafeCoerce#`, `lazy`, and `runRW#` really are expressible
 in a functional style; and "lowering" them in `CoreToSTG` feels like the
 right place to deal with them.

 So yes, either known-key or wired-in `Id`.  We need wired-in if we need
 IdInfo that won't be inferred; but actually I think the right strictness
 ''will'' be inferred from its definition, so maybe known-key is enough.

 The important thing is that we don't inline it until very very late; and
 (sadly) we may want the simplifier to treat it specially.

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


More information about the ghc-tickets mailing list