the package Workflow serialize also the state of a computation, so it can be re-started and continued. It uses also the above mentioned event trick to serialize the state.
By the way you can use the workflow monad transformer to recover the state of the game. You don“t need to serialize anything explicitly, the transformer will do it, but your step results must be serializable. If you have this code: loop= do eventhandlercode <- receive handler <- compile eventhandlercode execute handler loop then the lifted process in the workflow monad would be: loop=do eventhandlercode <- step receive handler <- liftIO $ compile eventhandlercode liftIO $ execute handler loop step will store the result and will recover the execution state. Only the step result should be serializable. 2013/3/24 Corentin Dupont <corentin.dup...@gmail.com> > I also came across Scala's Swarm, making use serializable delimited > continuations. Looks good! > http://www.scala-lang.org/node/3485 > > > On Sun, Mar 24, 2013 at 11:13 PM, Michael Better <mbet...@gmail.com>wrote: > >> Isn't this similar to the problem Cloud Haskell had to solve to send code >> to another process to run? >> >> Mike >> On Mar 24, 2013 5:06 PM, "Brandon Allbery" <allber...@gmail.com> wrote: >> >>> On Sun, Mar 24, 2013 at 5:44 PM, Corentin Dupont < >>> corentin.dup...@gmail.com> wrote: >>> >>>> But I always bothered me that this state is not serializable... >>> >>> >>> I am not quite sure how to respond to that. You seem to be asking for >>> magic. >>> >>> That kind of state has never been sanely serializeable. Not in Haskell, >>> not anywhere else. The usual hack is to dump an entire memory image to >>> disk, either as an executable (see "gcore" and "undump"; also see how the >>> GNU emacs build dumps a "preloaded" emacs executable) or by dumping the >>> data segment as raw bytes and reloading it as such (which doesn't work so >>> well in modern demand paged executables; it can work better with a virtual >>> machine environment, and various Lisp and Smalltalk implementations dump >>> and reload their raw VM images this way). >>> >>> I would not be surprised if what you seem to be asking for turns out to >>> be yet another guise of the halting problem. >>> >>> -- >>> brandon s allbery kf8nh sine nomine >>> associates >>> allber...@gmail.com >>> ballb...@sinenomine.net >>> unix, openafs, kerberos, infrastructure, xmonad >>> http://sinenomine.net >>> >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> Haskell-Cafe@haskell.org >>> http://www.haskell.org/mailman/listinfo/haskell-cafe >>> >>> > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > > -- Alberto.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe