
#11271: Costly let binding gets duplicated in IO action value
-------------------------------------+-------------------------------------
Reporter: dramforever | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.2
Resolution: | Keywords:
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 nomeata):
With 7.8, this is reproducable, but there, `-fno-state-hack` _does_ amend
the problem.
I think the reason is that since 7.10, interface files leak information
about one-shot lambdas. This is intentional, but it means that the effect
of `-fstate-hack` is less local. In particular, in this case, we have this
in the interface of `System.IO`:
{{{
f6fca8f374be656f4987fa89a8843dac
print :: Show a => a -> IO ()
{- Arity: 3, Strictness: