The plugins-auto package

[Tags: bsd3, library]

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 id 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

Versions0.0.1, 0.0.2, 0.0.3, 0.0.4
Dependenciesbase (>=3 && <5), containers, filepath, hinotify (>=0.3.2), mtl, plugins (>=1.5.1.4), template-haskell
LicenseBSD3
AuthorHappstack team, HAppS LLC
MaintainerHappstack team <happs@googlegroups.com>
CategorySystem
Source repositoryhead: darcs get http://patch-tag.com/r/facundo/plugins-auto
UploadedSat Dec 3 13:57:50 UTC 2011 by FacundoDominguez
Downloads399 total (27 in last 30 days)
StatusDocs not available [build log]
All reported builds failed [all 1 reports]

Modules

Flags

NameDescriptionDefault
testsBuild the testsuite, and include the tests in the libraryDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees