#2346: Compilation of large source files requires a lot of RAM
------------------------------------------+---------------------------------
Reporter: choener | Owner:
Type: compile-time performance bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.8.2
Severity: major | Resolution:
Keywords: | Difficulty: Unknown
Testcase: | Architecture: x86
Os: Linux |
------------------------------------------+---------------------------------
Changes (by simonpj):
* difficulty: => Unknown
Old description:
> We have automatically generated source files with up to ~20000 lines of
> code.
>
> One type definition, two functions called "grammar" (cmGrammer,
> ghGrammar) and one or more functions called "algebra" (prettyprint,
> scoremax, count, ***) are generated. Each function has a where-clause
> with 100+ locally visible function defined.
>
> Attached, you find two files (ADPTriCombinators.lhs, RnaI.lhs) with
> helper-functions and three of our source files. One is the smallest
> example we have and the other the largest. RF00549RED.hs is reduced to
> only the type, one algebra and one grammar.
>
> Copy all files into a directory and then execute:
> ghc --make RF00390.hs (should work)
> ghc --make RF00549.hs (WARNING: EATS ALL MEMORY)
> ghc --make RF00549RED.hs (WARNING: EATS ALL MEMORY)
>
>
> System Info:
> ============
> Linux workstation 2.6.25-ARCH #1 SMP PREEMPT Fri May 16 14:52:43 CEST
> 2008 i686 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux (2
> GByte RAM, 2 GByte Swap)
>
> gcc version 4.3.0 (GCC)
>
> Thanks,
> Christian Höner zu Siederdissen
New description:
We have automatically generated source files with up to ~20000 lines of
code.
One type definition, two functions called "grammar" (cmGrammer, ghGrammar)
and one or more functions called "algebra" (prettyprint, scoremax, count,
***) are generated. Each function has a where-clause with 100+ locally
visible function defined.
Attached, you find two files (ADPTriCombinators.lhs, RnaI.lhs) with
helper-functions and three of our source files. One is the smallest
example we have and the other the largest. RF00549RED.hs is reduced to
only the type, one algebra and one grammar.
Copy all files into a directory and then execute:
{{{
ghc --make RF00390.hs (should work)
ghc --make RF00549.hs (WARNING: EATS ALL MEMORY)
ghc --make RF00549RED.hs (WARNING: EATS ALL MEMORY)
}}}
System Info:
{{{
Linux workstation 2.6.25-ARCH #1 SMP PREEMPT
Fri May 16 14:52:43 CEST 2008
i686 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD
GNU/Linux (2 GByte RAM, 2 GByte Swap)
gcc version 4.3.0 (GCC)
}}}
Thanks,
Christian Höner zu Siederdissen
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2346#comment:2>
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