Ticket #1969 (closed bug: fixed)
enormous compile times
| Reported by: | duncan | Owned by: | igloo |
|---|---|---|---|
| Priority: | normal | Milestone: | 6.12 branch |
| Component: | Compiler | Version: | 6.8.1 |
| Keywords: | performance | Cc: | |
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | Compile-time performance bug | Difficulty: | Difficult (2-5 days) |
| Test Case: | T1969 | Blocked By: | |
| Blocking: | Related Tickets: |
Description
Some modules cause ghc to take a very very long time (and a lot of memory) to compile, even without optimisations.
Here is an example of a module that takes almost forever to compile. The WASH/HTML/HTMLMonad98.hs module from WASH-2.12 http://www.informatik.uni-freiburg.de/~thiemann/haskell/WASH/
It is a 185k, 5,800 line module consisting almost entirely of data, class and instance declarations.
It might be interesting to use this module as a test case to profile ghc's front end to see if there are any obvious inefficiencies or unecessary non-linear algorithms.
WASH/HTML/HTMLPrelude.hs is almost as bad. Between the two of them they push the overall compile time for WASH to several minutes with -O0 and nearly half an hour with -O1. GHC's memory use while compiling WASH also grows to over 300Mb with -O0 and over 600Mb with -O1 (on a 64bit box).
All in all, WASH is an excellent stress test for GHC.
