Performance regression in the type checker regression for GADTs and type families
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.Acceleratewith darcs from http://code.haskell.org/accelerate/ - Change directory to the new
acceleratedarcs 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.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.0.1 |
| Type | Bug |
| TypeOfFailure | ValidProgramRejected |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |