[GHC] #13104: runRW# ruins join points
GHC
ghc-devs at haskell.org
Wed Oct 24 10:48:41 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 sgraf):
Replying to [comment:19 simonpj]:
> 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.
Ah, right. I thought I checked this and expected `runRW#`'s strictness
signature to be present in the interface file for `GHC.Exts`, but it
wasn't, so I assumed it got special treatment, like wired-in things.
It turns out that `f` in the this program
{{{
{-# LANGUAGE MagicHash #-}
module Foo where
import GHC.Magic
f = runRW#
}}}
has the right strictness signature `<C(S),C1(U)>`. Then it's a little
unclear to me why `loop 0` (or the definition of `loop`, at least) isn't
eta-expanded.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13104#comment:20>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list