[GHC] #13080: Memory leak caused by nested monadic loops

GHC ghc-devs at haskell.org
Fri Jan 13 03:44:42 UTC 2017


#13080: Memory leak caused by nested monadic loops
-------------------------------------+-------------------------------------
        Reporter:  Feuerbach         |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      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 dfeuer):

 If we write

 {{{#!hs
 foo = ...
   where
     bar = ...
       where
         baz = ...
 }}}

 do we intend for `bar` to be recomputed on each call to `foo`, or shared
 globally? Do we intend for `baz` to be recomputed on each call to `bar`,
 or on each call to `foo`, or shared globally? The compiler doesn't know.
 Worse, experienced Haskell developers have gotten used to the way GHC
 tends to float things around, so making things simpler and more
 predictable is likely to turn a lot of currently-good code bad. Maybe
 Joachim's `oneShot` can help in some places?

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


More information about the ghc-tickets mailing list