[GHC] #9390: Inlining prevents evaluation of ignored parts of unboxed tuples
GHC
ghc-devs at haskell.org
Wed Aug 6 09:55:21 UTC 2014
#9390: Inlining prevents evaluation of ignored parts of unboxed tuples
-------------------------------------+-------------------------------------
Reporter: snoyberg | Owner:
Type: bug | Status: new
Priority: normal | Milestone: 7.8.4
Component: Compiler | Version: 7.8.3
Resolution: | Keywords:
Operating System: Linux | Architecture: x86_64 (amd64)
Type of failure: Incorrect | Difficulty: Unknown
result at runtime | Blocked By:
Test Case: | Related Tickets:
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Comment (by snoyberg):
I'm confused about the end of your comment, in particular:
> `unsafeInterleaveIO` lets you ensure that it occurs after the effects
thus far in the do-block have occurred
But your example then implies that the `x` thunk will reliably be
evaluated before `V.freeze vm >>= print`, which does not seem to follow
from your comment. Can you clarify?
I'd be happy to take a crack at writing up some documentation. For a
while, I've wanted to have a clear set of rules for when
`unsafePerformIO`, `unsafeDupablePerformIO`, and `inlinePerformIO` (aka
unsafeAccursedPerformIO) are safe to use. Once I get some more clarity
from our discussion here, I'd like to take a pass at such a Wiki page, and
would greatly appreciate your review.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9390#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list