[Haskell-cafe] Hot-Swap with Haskell

Andy Stewart lazycat.manatee at gmail.com
Thu Jul 15 23:05:36 EDT 2010


Hi all,

I'm research to build a hot-swap Haskell program to developing itself in
Runtime, like Emacs.

Essentially, Yi/Xmonad/dyre solution is "replace currently executing"
technology:

   re-compile new code with new binary entry
   
   when re-compile success 
      $ do
          save state before re-launch new entry
          replace current entry with new binary entry (executeFile)
          store state after re-launch new entry
          
There are some problems with re-compile solution:

1) You can't save *all* state with some FFI code, such as gtk2hs, you
can't save state of GTK+ widget. You will lost some state after 
re-launch new entry.

2) Sometimes re-execute is un-acceptable, example, you running some command
in temrinal before you re-compile, you need re-execute command to
restore state after re-launch, in this situation re-execute command is un-acceptable.

I wonder have a better way that hot-swapping new code without
re-compile/reboot.

Thanks,

  -- Andy



More information about the Haskell-Cafe mailing list