Skip to content

GHCi leaks the first modules loaded

How to reproduce the leak:

cd nofib/real/veritas
ghci +RTS -S
Prelude> :load Main
*Main> System.Mem.performGC
 10554832  32639712  38824584  0.048  0.058    2.317    8.386    0    0  (Gen:  1)

Live data is ~38Mb (3rd number). Now unload everything:

*Main> :load
Prelude> System.Mem.performGC
  4005376  32681280  38850224  0.013  0.048    2.330   29.896    0    0  (Gen:  1)

Note the live data didn't go down.

Load the program again:

Prelude> :load Main
...
*Main> System.Mem.performGC
 16344112  47790304  54799632  0.070  0.074    4.343   82.235    0    0  (Gen:  1)

Note the live memory is almost 2x what it was before.

Trac metadata
Trac field Value
Version 8.2.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information