[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