Ticket #4856 (closed bug: fixed)
Performance regression in the type checker regression for GADTs and type families
|Reported by:||chak||Owned by:|
|Component:||Compiler (Type checker)||Version:||7.0.1|
|Type of failure:||Compile-time performance bug||Difficulty:|
|Test Case:||Blocked By:|
The GHC 7.0.2 RC1 shows poor performance when compiling Data.Array.Accelerate. In particular, to type check a particular module, GHC 7.02 takes several minutes, while GHC's resident memory grows to 350MB. In contrast, GHC 6.12.3 compiles the same module in a few seconds.
How to reproduce the problem:
- Download the latest version of Data.Array.Accelerate with darcs from http://code.haskell.org/accelerate/
- Change directory to the new accelerate darcs repo.
- Invoke GHCi as ghci -Iinclude.
- Issue the GHCi command: :l Data/Array/Accelerate/Smart.hs
You will notice that Data.Arra.Accelerate.Array.Sugar, which is heavy in type classes and type families, already requires a noticeable time to compile — this is already a performance regression from 6.12.3. The module Data.Array.Accelerate.Smart requires an even much longer time to compile.