
#13027: The let/app invariant, evaluated-ness, and reallyUnsafePtrEquality# -------------------------------------+------------------------------------- Reporter: erikd | Owner: dfeuer Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Building GHC | Test Case: failed | simplCore/should_compile/T13027 Blocked By: | Blocking: Related Tickets: #11444 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * owner: => dfeuer Comment: * `reallyUnsafePtrEq#`: see comment:15 of #11444. Phab:D2987 does this (thank you David); but it has no test. (I'm not certain it neeeds one.) * `seq#` is mis-named. It should really be `evaluate#` because it's the primop version of `evaluate`: {{{ seq# :: a -> State# s -> (# State# s, a #) evaluate :: a -> IO a evaluate a = IO $ \s -> seq# a s -- NB. see #2273, #5129 }}} I don't think it needs any `can_fail` or `has_side_effects` attributes, because it is totally constrained by the threaded state. I wish I could be 100.00% certain, but that's how it looks to me. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13027#comment:33 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler