[ ghc-Bugs-1274506 ] QuickCheck induced panic on :reload

SourceForge.net noreply at sourceforge.net
Tue Aug 30 08:25:05 EDT 2005


Bugs item #1274506, was opened at 2005-08-27 08:29
Message generated for change (Comment added) made by simonpj
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1274506&group_id=8032

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: GHCi
Group: 6.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Don Stewart (dons)
Assigned to: Nobody/Anonymous (nobody)
Summary: QuickCheck induced panic on :reload

Initial Comment:
A broken QuickCheck property cause ghci to panic after
reloading the module. Seen in stable and head branch.

paprika$ ghci T.hs
*Main> do_test
                     test : *                         
      (0)
*Main> :reload
ghc-6.5: panic! (the `impossible' happened, GHC version
6.5):
        <<loop>>

Please report it as a compiler bug to
glasgow-haskell-bugs at haskell.org,
or http://sourceforge.net/projects/ghc/.

Changing the property to check for empty lists causes
the test to pass, and reload to work fine.

-- Don Stewart

----------------------------------------------------------------------

>Comment By: Simon Peyton Jones (simonpj)
Date: 2005-08-30 12:25

Message:
Logged In: YES 
user_id=50165

Test.Quickcheck.Batch.run forks a "watcher" thread that 
sends a NonTermination exception to the parent; the idea is 
to time-out tests that run too long.  The parent kills the 
watcher when the test completes.

Sadly, the parent doesn't kill the watcher when the test itself 
throws an exception.

So, two problems:

1.  The "run" in QuickCheck.Batch is wrong and should be 
fixed.  I'm not sure who wrote it.

2.  GHCi itself can be killed by a thread spawned by an 
evaluation started by GHCi.   That's really a bug; but I'm not 
sure about the best way to fix it.

I'm going to leave this until Simon gets back from paternity 
leave!

Simon

----------------------------------------------------------------------

Comment By: Don Stewart (dons)
Date: 2005-08-27 08:32

Message:
Logged In: YES 
user_id=880987

Here's the test case, since uploading files is annoying in
sourceforge:

import Test.QuickCheck.Batch

prop_silly :: [()] -> Bool
prop_silly xs = head xs == head xs 

do_test = runTests "test" defOpt [ run prop_silly ]


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1274506&group_id=8032



More information about the Glasgow-haskell-bugs mailing list