
#11822: Pattern match checker exceeded (2000000) iterations -------------------------------------+------------------------------------- Reporter: j.waldmann | Owner: gkaracha Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1-rc3 Resolution: | Keywords: | PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: x86_64 Type of failure: Compile-time | (amd64) performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by niteria): Is it quadratic even for the simplest case? I have `A.gen.sh`: {{{ N=$1 echo "module A where" echo echo "data X = X" for i in $(seq 1 $N); do echo " | X$i"; done echo echo "instance Enum X where" for i in $(seq 1 $N); do echo " toEnum $i = X$i"; done for i in $(seq 1 $N); do echo " fromEnum X$i = $i"; done }}} Trying to compile for a datatype with 4000 constructors gives me: {{{ $ ./A.gen.sh 4000 > A.hs && ./inplace/bin/ghc-stage2 -dno-debug-output A.hs [1 of 1] Compiling A ( A.hs, A.o ) A.hs:8006:3: warning: Pattern match checker exceeded (2000000) iterations in an equation for ‘fromEnum’. (Use -fmax-pmcheck-iterations=n to set the maximun number of iterations to n) }}} This is not a made up example, we actually have enumeration types with 10k constructors. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11822#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler