Modifying Running Programs

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? -Alex- ______________________________________________________________ S. Alexander Jacobson tel:917-770-6565 http://alexjacobson.com

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... 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
participants (2)
-
dons@cse.unsw.edu.au
-
S. Alexander Jacobson