RE: another wash compile problem

On 06 July 2005 23:38, Frederik Eaton wrote:
When I compile WASH it takes forever for ghc to finish compiling HTMLMonad98, and on my powerpc system with 151MB free RAM, gcc crashes during the compile. Should some of the larger WASH modules maybe be split into multiple files? I get the sense that ghc compilation time/memory is super-linear in the size of the module being compiled.
I've now verified my earlier "ghc compilation complexity is super-linear" belief. I split up HTMLMonad98 into 10 files, and then split the 6th and largest, which consists of the following lines -
instance AdmitChildHEAD HTML instance AdmitChildFRAMESET HTML ...(2692 lines) instance AdmitChildLABEL ACRONYM instance AdmitChildBUTTON ACRONYM
into 14 files:
$ wc -l HTMLMonad98No6.hs 2696 HTMLMonad98No6.hs $ wc -l HTMLMonad98No6?.hs 200 HTMLMonad98No6a.hs 204 HTMLMonad98No6b.hs 204 HTMLMonad98No6c.hs ... 2748 total
Compiling a module which imports the 14 smaller modules takes much less time than compiling the monolithic module - it's almost 5 times faster (see below).
We've found the cause of this, and committed a fix. The full HTMLMonda98.hs now compiles in 27 seconds for me, without optimisation (with 6.4 it is several minutes). Let's hope the same issue is affecting other compilations too :-) Cheers, Simon

Compiling a module which imports the 14 smaller modules takes much less time than compiling the monolithic module - it's almost 5 times faster (see below).
We've found the cause of this, and committed a fix. The full HTMLMonda98.hs now compiles in 27 seconds for me, without optimisation (with 6.4 it is several minutes). Let's hope the same issue is affecting other compilations too :-)
Wow! That's great. Have you looked at how compile time varies with module size in the fixed version? Frederik
participants (2)
-
Frederik Eaton
-
Simon Marlow