What causes <<loop>>?

Brent Yorgey byorgey at seas.upenn.edu
Sat Nov 8 12:37:18 EST 2008


On Sat, Nov 08, 2008 at 10:32:38AM -0600, Creighton Hogg wrote:
> Hello,
> So I'm trying to debug an issue that is causing GHC to emit the
> <<loop>> warning.  I was hoping to get more information about what
> exactly that tells me about the kind of problem, other than the
> obvious interpretation that I appear to be getting into some kind of
> infinite loop.  What is GHC detecting when it emits that warning?

In particular, I think when a thunk is being evaluated, it is marked
in some way; if during evaluation an already-marked thunk is
encountered, a loop exception is raised, since it means that thunk
depends on itself.  (I'm hand-waving slightly since I don't actually
know the details.) Obviously this cannot catch all infinite loops, but
it does catch simple ones where no useful work of evaluation can
actually take place.

-Brent


More information about the Glasgow-haskell-users mailing list