2005-04-24 08:51:33 +00:00
|
|
|
|
2005-05-15 06:03:55 +00:00
|
|
|
import System.Plugins
|
2005-04-24 08:51:33 +00:00
|
|
|
|
|
|
|
import System.Directory
|
|
|
|
|
|
|
|
a = "Foo.hs" -- uesr code
|
|
|
|
b = "Bar.hs" -- trusted code. Result is "Bar.o"
|
|
|
|
c = "Out.hs"
|
|
|
|
|
|
|
|
main = do
|
|
|
|
status <- mergeTo a b c
|
|
|
|
f <- case status of
|
|
|
|
MergeFailure e -> error "mergeto failure"
|
|
|
|
MergeSuccess _ _ f -> return f
|
|
|
|
print $ f == c
|
|
|
|
|
|
|
|
status <- mergeTo a b c
|
|
|
|
f' <- case status of
|
|
|
|
MergeFailure e -> error "mergeto failure"
|
|
|
|
MergeSuccess ReComp _ f -> error "unnec. mergeto"
|
|
|
|
MergeSuccess NotReq _ f -> return f -- good, not req
|
|
|
|
|
|
|
|
print $ f == f' && f == c
|
|
|
|
|
|
|
|
status <- make f' []
|
|
|
|
o <- case status of
|
|
|
|
MakeFailure e -> error "make failed"
|
|
|
|
MakeSuccess _ o -> return o
|
|
|
|
|
|
|
|
m_v <- load o [] [] "resource"
|
|
|
|
v <- case m_v of
|
|
|
|
LoadSuccess _ v -> return v
|
|
|
|
_ -> error "load failed"
|
|
|
|
putStrLn $ show $ (v :: Int)
|
|
|
|
|
|
|
|
makeCleaner c
|
|
|
|
|