[GHC] #14336: ghci leaks memory
GHC
ghc-devs at haskell.org
Sun Oct 8 20:45:17 UTC 2017
#14336: ghci leaks memory
-------------------------------------+-------------------------------------
Reporter: NeilMitchell | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 8.2.1
Keywords: | Operating System: Windows
Architecture: x86_64 | Type of failure: Runtime
(amd64) | performance bug
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
The following script spawns ghci, and that spawned ghci then goes on to
leak memory:
{{{#!hs
import Control.Concurrent
import Control.Monad
import System.IO
import System.Process
main = do
(Just hin, Nothing, Nothing, pid) <- createProcess (proc "ghci"
["+RTS","-S"]){std_in=CreatePipe}
forever $ do
threadDelay 100000 -- 0.1s
hPutStrLn hin "\"this is a test of outputting stuff\""
hFlush hin
}}}
This script just writes a string to GHCi, which then echos it back. The
{{{+RTS -S}}} is useful to watch the live memory tick up in realtime, but
it leaks without it, and the leak can be seen in process explorer (87Mb to
700Mb over about 30 minutes).
While repeatedly writing commands may not be a standard usage of ghci, it
is when driven by tools such as ghcid
(https://hackage.haskell.org/package/ghcid) and other IDE-like uses.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14336>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list