FIX #2327: a fault in the thunk-selector machinery (again)
authorSimon Marlow <marlowsd@gmail.com>
Tue, 29 Jul 2008 15:05:18 +0000 (15:05 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 29 Jul 2008 15:05:18 +0000 (15:05 +0000)
commit890f5a1a6e70ff4021cd58463f5152f10c47b395
tree562f47634a88f869839730bf89a8364897cf99ff
parentd9aa9b1a3059bd6c96f83fadec0419c22606f5f3
FIX #2327: a fault in the thunk-selector machinery (again)
This program contains an expression of the form

   let x = snd (_, snd (_, snd (_, x)))

(probably not explicitly, but that's what appears in the heap at
runtime).  Obviously the program should deadlock if it ever enters
this thing, but apparently the test program in #2327 never does.

The GC tries to evaluate the snd closures, and gets confused due to
the loop.  In particular the earlier fix for #1038 was to blame.
rts/sm/Evac.c