
#8598: IO hack in demand analyzer gets in the way of CPR -------------------------------------+------------------------------------ Reporter: nomeata | Owner: Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: T8598 | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by nomeata): Simplified my fix in [http://git.haskell.org/ghc.git/shortlog/refs/heads/wip/T8598 `wip/T8598`] (did not add a new element to the lattice, rather added a simple unary function to defer a !DmdType when it occurs after an IO action). Code is currently validating, and will be pushed afterwards. This branch also contains a patch “Rename topDmdType to nopDmdType”:
because topDmdType is ''not'' the top of the lattice, as it puts an implicit absent demand on free variables, but Abs is the bottom of the Usage lattice.
Why nopDmdType? Becuase it is the demand of doing nothing: Everything lazy, everything absent, no definite divergence.
This ticket stays open to track the '''first''' issue SPJ mentioned in comment:2. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8598#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler