GHC panic/loop (mdo)

Simon Peyton-Jones simonpj at microsoft.com
Tue Jan 4 11:28:18 EST 2005


Excellent point.  A genuine bug in 6.2, I fear. 

I've fixed the HEAD, and added a test (mdo006)

Thanks for boiling this down, Iavor.

Simon

| -----Original Message-----
| From: glasgow-haskell-bugs-bounces at haskell.org
[mailto:glasgow-haskell-bugs-
| bounces at haskell.org] On Behalf Of Iavor Diatchki
| Sent: 23 December 2004 19:19
| To: glasgow-haskell-bugs at haskell.org
| Subject: GHC panic/loop (mdo)
| 
| Hello,
| the following program makes GHC 6.2.2 loop forever (testLoop) or panic
| (testPanic).
| I tried to derive small examples that illustrate the problem.
| The problem seems to be related to the use of 'mdo', and it looks like
it is
| important that the expressoin 'f x' is repeated.
| 
| > import Control.Monad.Fix
| > main               :: IO ()
| > main                = return ()
| 
| 
| This makes the compiler loop.
| 
| < testLoop _          = mdo x <- mapM undefined (f x)
| <                           let f _ = []
| <                           return (f x)
| 
| This makes the compiler panic.
| 
| > testPanic _         = mdo x <- f x
| >                           let f _ = return ()
| >                           f x
| 
| Hope this helps
| Iavor
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| Glasgow-haskell-bugs at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



More information about the Glasgow-haskell-bugs mailing list