logo       

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

lang.haskell.glasgow.bugs

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

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@xxxxxxxxxxx,
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


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise