[GHC] #14521: Infinite loop at runtime

GHC ghc-devs at haskell.org
Tue Nov 28 19:32:38 UTC 2017


#14521: Infinite loop at runtime
-------------------------------------+-------------------------------------
        Reporter:  OlivierSohn       |                Owner:  (none)
            Type:  bug               |               Status:  closed
        Priority:  high              |            Milestone:  8.2.3
       Component:  Compiler          |              Version:  8.2.2
      Resolution:  invalid           |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by OlivierSohn):

 Replying to [comment:21 simonpj]:
 > In this case the relevant optimisation is eta-expansion.  If you do
 manual eta-expansion on
 > `animate'`, then it converges, always:
 > {{{
 > animate' :: Animator a -> Tree -> Animation  -> IO (Maybe Animation)
 > animate' (Animator pure_ io_) t a = animate pure_ io_ t a
 > }}}

 Thank you for your analysis, I think I understand why making the record
 field non-strict fixes the problem, but I don't understand why the eta-
 expansion also fixes it, could you explain me or point me to a resource
 explaining this point?

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


More information about the ghc-tickets mailing list