[Haskell-cafe] Modifying Running Programs

Donald Bruce Stewart dons at cse.unsw.edu.au
Sun Aug 1 20:25:19 EDT 2004


alex:
> eBay modifies 30k lines of code per week while
> maintaining 99.92% uptime.
> 
> Is there a way to force ghc (or some other Haskell
> implementation) to load new implementations of
> functions without restarting the program?
> 
> Alternatively, is there a way of restarting a
> program with new code without having to
> reconstruct all its in memory state?

You could consider using hs-plugins:
  http://www.cse.unsw.edu.au/~dons/hs-plugins/

the example at the bottom of 
  http://www.cse.unsw.edu.au/~dons/hs-plugins/hs-plugins-Z-H-7.html#node_sec_6.2

shows how to load a new object into a running program, changing an
already existing function on the fly. This uses GHC's dynamic linker
underneath.

-- Don


More information about the Haskell-Cafe mailing list