
If you specify the minimal complete definition, using the MINIMAL pragma (which is part of 7.8, but not 7.6) then it should warn. If it doesn't,
#8854: Missing class method not caught at compile time, program freezes when missing method is called. ----------------------------------+---------------------------------- Reporter: RaminHAL9001 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: #7633 ----------------------------------+---------------------------------- Comment (by RaminHAL9001): My full source code repository is here: https://github.com/RaminHAL9001/dao You can clone the repository and just run "make" on Linux, it should compile fine with GHC 7.6.1. It will produce two executable programs, "./dao" and "./debug/test". In the "Dao.Interpreter" module, there is an instance: {{{ instance HasRandGen [Comment] where { randO = return []; defaultO = return []; } }}} If you remove the "defaultO" instance and re-compile, that should reproduce the bug, This was the exact instance I had not defined that was causing it to freeze. To run the test suite to cause the error to occur, change to the "debug" directory and run the "test" program. It works a bit like QuickCheck, but you can specify random seed values on the command line to produce the same random test cases every time, for example: {{{ ./test 8 14 }}} I found seeds 8 and 14 crashed reliably, both compiled and in GHCi. But I don't know if the random number generator will produce the same test cases on your hardware as it will on mine so you may have to run a few dozen tests before you find one that freezes. {{{ ./test $(seq 1 100) }}} The source code is under active development, so things may change. However for the time being I don't expect there to be any changes to the part of the code that lets you reproduce the bug. I did see the {-# MINIMAL #-} pragma in #7633, but I am using GHC 7.6.1 for now. Replying to [comment:1 simonpj]: that's a bug. Can you give the complete source code for a program that exhibits the bug... if we can't reproduce it we can't fix it.
Thanks
Simon
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8854#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler