The plugins-auto package
This library provides support for automatically recompiling and reloading modules into your programs when the source code is modified.
Any program called ghc in your PATH will be used for recompiling.
module Main where
import System.IO (hSetBuffering,stdout,BufferMode(..))
import System.Plugins.Auto (withMonadIO,initPlugins)
import Answer
main :: IO ()
main = do ph<-initPlugins
hSetBuffering stdout NoBuffering
putStrLn "This program interacts with you in a loop."
putStrLn "Type something, and the program will respond when you hit the Enter Key."
putStrLn "Modify Answer.hs while interacting and you should see the answers"
putStrLn "change accordingly."
let interactiveLoop = prompt ph >> interactiveLoop
interactiveLoop
where
prompt ph = do
putStr "> "
input <- getLine
$(withMonadIO 'getAnswer) ph notLoaded$ \errs getAnswer ->
mapM_ putStrLn errs >> getAnswer input
notLoaded errs =
if null errs then putStrLn "Plugin not loaded yet."
else putStrLn "Errors found:" >> mapM_ (putStrLn . (" "++)) errs
>> putStrLn "Try fixing the errors and come back here."
module Answer where
getAnswer :: String -> IO ()
getAnswer input = putStrLn ("What you typed: "++input)
Properties
| Versions | 0.0.1, 0.0.2, 0.0.3, 0.0.4 |
|---|---|
| Dependencies | base (≥3 & <5), containers, filepath, hinotify (≥0.3.2), mtl, plugins (≥1.5.1.4), template-haskell |
| License | BSD3 |
| Author | Happstack team, HAppS LLC and MarketPsych Advisor LLC |
| Maintainer | Happstack team <happs@googlegroups.com> |
| Category | System |
| Source repository | darcs get http://patch-tag.com/r/facundo/plugins-auto |
| Upload date | Thu Dec 15 00:05:10 UTC 2011 |
| Uploaded by | FacundoDominguez |
| Build failure | ghc-7.2 (log) |
Modules
- System
- Plugins
- System.Plugins.Auto
- Plugins
Downloads
- plugins-auto-0.0.4.tar.gz (Cabal source package)
- package description (included in the package)