agocorona / MFlow

(Haskell) Web application server with stateful, type safe user interactions and widget combinators
http://mflowdemo.herokuapp.com
Other
100 stars 12 forks source link

automatically rebuilds and reloads #34

Closed rdesfo closed 10 years ago

rdesfo commented 10 years ago

Does MFlow have something like yesod devel that will automatically rebuild and reload the web app?

agocorona commented 10 years ago

Not at this time.

But it is possible modify the layout and content of a page at run time using tFieldEd and edTemplate. The code can not be changed at runtime.

It makes less sense in MFlow than in Yesod, since in MFlow all the navigation is pure haskell and compiled, while in Yesod is a composition of pages with routes . It does make sense to modified separately one of them. While in the case of MFlow it means to modify the entire navigation, and this is equivalent to a new execution with runhaskell or runghc. And It would take as much time and resources. And this is what i do: kill the program and do a runghc again

However the layout of a widget can be edited at runtime by using the two above calls.

2014-05-27 16:18 GMT+02:00, rdesfo notifications@github.com:

Does MFlow have something like yesod devel that will automatically rebuild and reload the web app?


Reply to this email directly or view it on GitHub: https://github.com/agocorona/MFlow/issues/34

Alberto.

rdesfo commented 10 years ago

When using MFlow with ghci it stays connected to the port even after I .

cabal repl :l Demo.myWidget :run main 8080

:r :run main 8080

which returns

: bind: resource busy (Address already in use)

Is there a better work flow? I can specify a different port each time or restart 'cabal repl' but it would save some time to be able to reload ghci and just refresh the page in the browser.

agocorona commented 10 years ago

Yes. There is a bug in GHCi so that the thread do not die when the main program finish. I ever use runghc instead of ghci, unless I need to debug something.

It is important to finish with CTRL-C in order to close orderedly and to sync the cache.

2014-05-27 17:04 GMT+02:00, rdesfo notifications@github.com:

When using MFlow with ghci it stays connected to the port even after

. > cabal repl > :l Demo.myWidget > :run main 8080 > > :r > :run main 8080 > : bind: resource busy (Address already in use) I can specify a different port each time or restart 'cabal repl' but it would save some time to be able to reload ghci and just refresh the page in the browser. --- Reply to this email directly or view it on GitHub: https://github.com/agocorona/MFlow/issues/34#issuecomment-44288426

Alberto.

rdesfo commented 10 years ago

thanks