[GHC] #12368: Demand Analyzer: Cunnig plan not adhered to with aborting fixpoint interation

GHC ghc-devs at haskell.org
Wed Jul 6 12:41:52 UTC 2016


#12368: Demand Analyzer: Cunnig plan not adhered to with aborting fixpoint
interation
-------------------------------------+-------------------------------------
        Reporter:  nomeata           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  low               |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by nomeata):

 The warning is disabled at the moment. It would be much less rare if we
 had nested demands on sum types; right now the easiest way to trigger it
 is a recursive function over a recursive product type (e.g. `data Stream a
 = S a (Stream a)` or `data BinTree a = Node (BinTree a) a (BinTree a)`.

 Maybe there is a way to fix this by doing a final single iteration with
 sound, but conservative assumptions about the strictness signature, and
 then using `pairs'` instead of `orig_pairs`. This would also make me less
 worry that the `lazy_fv` returned in the `n>=10` case could be wrong (as
 they are produced from the unsound assumption).

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12368#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list