Skip to content

allocation of 10790760 bytes too large

Here is the error message first, followed by my description of what happened.

hs> ghc -o void void.hs -rtsopts
[1 of 1] Compiling Main ( void.hs, void.o )
Linking void.exe ...

hs> void +RTS -K400M -RTS > void.txt
void: internal error: allocation of 10790760 bytes too large
(GHC should have complained at compile-time)

    (GHC version 7.8.3 for x86_64_unknown_mingw32)
    Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug

hs> void +RTS -K40000M -RTS > void.txt
void: internal error: allocation of 10790760 bytes too large
(GHC should have complained at compile-time)

    (GHC version 7.8.3 for x86_64_unknown_mingw32)
    Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug

Description of what happened: I gave my program really large numbers. It contains the following line:

rr = (of40)*(r^3041)

where of40 is an integer which has about 2 515 968 (that is two million+) decimal digits (explicitly written out and initialized in the .hs file). In addition, of40 is multiplied by r^3041, where r is a 250-digit number so r^3041 has about 760 250 (seven hundred sixty thousand+) decimal digits. This makes the product

rr = (of40)*(r^3041)

have more than 3 000 000 (three million+) decimal digits.

I tried to compile it three times, twice unsuccessful (insufficient amount of memory during compilation), and the third time successful, after 12 hours work by the compiler, and me increasing the paging file to initial size 49152 Mb, max size 196608 Mb. (At the end of compilation the Paging file reported as: Recommended 24574 Mb, Currently allocated: 163765 Mb.) I run a Hewlett-Packard HPE 500y, upgraded to 16 Gb RAM, Windows 7, AMD Phenom(tm) II X6 1045T Processor 2.70 GHz (6 core). The compiler produced a big exe file: 09/27/2014 09:38 PM 20,602,960 void.exe When I tried to run the exe file I got the error messages as already enclosed at the beginning of this description. Most of the time during compilation the computer used all of the available memory.

Note that I gave the options -rtsopts to the compiler, and the option +RTS -K400M -RTS when I tried to execute the compiled program (I believe this is some kind of a request for more memory), and one more attempt with +RTS -K40000M -RTS, both versions generated the error messages shown above.

P.S. Thanks to Richard Eisenberg and Herbert Valerio Riedel for replying to my email, after BotScout kept me from submitting my report. Apparently I passed the evaluation-captcha (on my second attempt) but nevertheless BotScout insisted I was spam.

Edited by David Feuer
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information