Update examples

This commit is contained in:
Don Stewart
2005-09-03 04:45:14 +00:00
parent 5321754614
commit dff0363224
421 changed files with 19 additions and 9 deletions

View File

@ -0,0 +1,3 @@
TEST= make/odir
TOP=../../..
include ../../build.mk

View File

@ -0,0 +1,7 @@
module Plugin ( resource ) where
import API
resource = plugin {
field = "hello out there"
}

View File

@ -0,0 +1,8 @@
module API where
data Interface = Interface {
field :: String
}
plugin :: Interface
plugin = Interface { field = undefined }

View File

@ -0,0 +1,21 @@
import System.Plugins
import API
import System.Directory
main = do
#if __GLASGOW_HASKELL__ >= 604
tmpDir <- getTemporaryDirectory
#else
let tmpDir = "/tmp"
#endif
status <- make "../Plugin.hs" [ "-i../api", "-odir", tmpDir ]
o <- case status of
MakeSuccess _ o -> return o
MakeFailure e -> mapM_ putStrLn e >> error "didn't compile"
m_v <- load o ["../api"] [] "resource"
v <- case m_v of
LoadSuccess _ v -> return v
_ -> error "load failed"
putStrLn $ field v
mapM_ removeFile [(tmpDir ++ "/Plugin.hi"), (tmpDir ++ "/Plugin.o") ]

View File

@ -0,0 +1 @@
hello out there