[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