#3831: GHC uses too much memory compiling terminfo
---------------------------------+------------------------------------------
    Reporter:  igloo             |        Owner:                              
        Type:  bug               |       Status:  new                         
    Priority:  high              |    Milestone:  6.12.2                      
   Component:  Compiler          |      Version:  6.12.1                      
    Keywords:                    |   Difficulty:                              
          Os:  Unknown/Multiple  |     Testcase:                              
Architecture:  Unknown/Multiple  |      Failure:  Compile-time performance bug
---------------------------------+------------------------------------------
 On x86/Linux, with this `mk/build.mk`:
 {{{
 GhcLibWays = v p dyn
 SRC_HC_OPTS     = -O -H64m -Rghc-timing
 GhcStage1HcOpts = -O -fasm
 GhcStage2HcOpts = -O2 -fasm
 GhcHcOpts       = -Rghc-timing
 GhcLibHcOpts    = -O2 -XGenerics

 #SplitObjs          = YES
 SplitObjs          = NO
 HADDOCK_DOCS       = NO
 BUILD_DOCBOOK_HTML = NO
 BUILD_DOCBOOK_PS   = NO
 BUILD_DOCBOOK_PDF  = NO

 #
 -----------------------------------------------------------------------------
 # Other settings that might be useful

 # profiled RTS
 #GhcRtsCcOpts =  -pg -g

 # Optimised/profiled RTS
 #GhcRtsCcOpts = -O2 -pg

 #GhcRtsWithFrontPanel = YES
 #SRC_HC_OPTS += `gtk-config --libs`

 # NoFib settings
 NoFibWays =
 STRIP=:
 }}}
 and these commands:
 {{{
 $ sh boot
 $ ./configure --prefix=/opt/ghc-6.13
 $ make
 }}}
 and a 1GB memory limit (`ulimit -v 1024000`), the build fails with:
 {{{
 "inplace/bin/ghc-stage1"   -O -H64m -Rghc-timing    -package-name
 terminfo-0.3.1.1 -hide-all-packages -i -ilibraries/terminfo/.
 -ilibraries/terminfo/dist-install/build -ilibraries/terminfo/dist-
 install/build/autogen -Ilibraries/terminfo/dist-install/build
 -Ilibraries/terminfo/dist-install/build/autogen -Ilibraries/terminfo/.
 -optP-include -optPlibraries/terminfo/dist-
 install/build/autogen/cabal_macros.h -package base-4.2.0.0 -package
 extensible-exceptions-0.1.1.1  -Wall -XForeignFunctionInterface
 -XDeriveDataTypeable -XEmptyDataDecls -XScopedTypeVariables
 -XFlexibleInstances -O2 -XGenerics -fno-warn-deprecated-flags     -odir
 libraries/terminfo/dist-install/build -hidir libraries/terminfo/dist-
 install/build -stubdir libraries/terminfo/dist-install/build -hisuf hi
 -osuf  o -hcsuf hc -c
 libraries/terminfo/./System/Console/Terminfo/Effects.hs -o
 libraries/terminfo/dist-install/build/System/Console/Terminfo/Effects.o
 ghc-stage1: out of memory (requested 1048576 bytes)
 make[1]: *** [libraries/terminfo/dist-
 install/build/System/Console/Terminfo/Effects.o] Error 1
 make: *** [all] Error 2
 }}}
 With `-v`:
 {{{
 Glasgow Haskell Compiler, Version 6.13.20100120, for Haskell 98, stage 1
 booted
 by GHC version 6.8.2
 Using binary package database:
 /home/ian/qq/ghc/inplace/lib/package.conf.d/packa
 ge.cache
 wired-in package ghc-prim mapped to ghc-prim-0.2.0.0-inplace
 wired-in package integer-gmp mapped to integer-gmp-0.2.0.0-inplace
 wired-in package base mapped to base-4.2.0.0-inplace
 wired-in package rts mapped to builtin_rts
 wired-in package haskell98 mapped to haskell98-1.0.1.1-inplace
 wired-in package template-haskell mapped to template-
 haskell-2.4.0.0-inplace
 wired-in package dph-seq mapped to dph-seq-0.4.0-inplace
 wired-in package dph-par mapped to dph-par-0.4.0-inplace
 Hsc static flags: -static
 Created temporary directory: /tmp/ghc1791_0
 *** Checking old interface for
 terminfo-0.3.1.1:System.Console.Terminfo.Effects:
 *** Parser:
 *** Renamer/typechecker:
 *** Desugar:
     Result size = 1076
 *** Simplifier gentle[rules,no inline] max-iterations=4:
     Result size = 802
     Result size = 758
     Result size = 758
 *** Specialise:
     Result size = 758
 *** Float out(not lambdas, constants):
     Result size = 826
 *** Float inwards:
     Result size = 826
 *** Simplifier Phase 2 [main] max-iterations=4:
     Result size = 1499
     Result size = 2190
     Result size = 2994
     Result size = 2380
     Result size = 2380
 *** Simplifier Phase 1 [main] max-iterations=4:
     Result size = 2145
     Result size = 2115
 *** Simplifier Phase 0 [main] max-iterations=4:
     Result size = 2115
 *** Demand analysis:
     Result size = 2115
 *** Worker Wrapper binds:
     Result size = 2115
 *** Glom binds:
 *** GlomBinds:
     Result size = 2115
 *** Simplifier Phase 0 [post-worker-wrapper] max-iterations=4:
     Result size = 2115
 *** Float out(not lambdas, constants):
     Result size = 2121
 *** Common sub-expression:
     Result size = 2102
 *** Float inwards:
     Result size = 2102
 *** Liberate case:
     Result size = 2102
 *** Simplifier Phase 0 [post-liberate-case] max-iterations=4:
     Result size = 2082
     Result size = 2082
 *** SpecConstr:
 ghc-stage1: out of memory (requested 1048576 bytes)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3831>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to