From: Ilya V. Portnov Date: Tue, 4 Oct 2011 06:10:25 +0000 (+0600) Subject: Some docs. Update .cabal file and Makefile. X-Git-Tag: v0.3.2~10^2~10 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hs-java.git;a=commitdiff_plain;h=2e5ea0a9c83df3946daa515ee199b98e89be053c Some docs. Update .cabal file and Makefile. --- diff --git a/Java/ClassPath.hs b/Java/ClassPath.hs index 944cc36..2dbff67 100644 --- a/Java/ClassPath.hs +++ b/Java/ClassPath.hs @@ -24,9 +24,11 @@ glob dir patterns = do (matches, _) <- globDir (map compile patterns) dir return $ concat matches +-- | Append one file to ClassPath forest appendPath :: FilePath -> [Tree CPEntry] -> [Tree CPEntry] appendPath path forest = merge $ forest ++ (mapF NotLoaded $ buildTree [path]) +-- | Add one directory to current ClassPath addDirectory :: FilePath -> ClassPath () addDirectory dir = do files <- liftIO $ glob dir ["*.class"] @@ -34,12 +36,15 @@ addDirectory dir = do let cp' = foldr appendPath cp files St.put cp' +-- | Run ClassPath monad runClassPath :: ClassPath a -> IO a runClassPath m = St.evalStateT m [] +-- | Run ClassPath monad and return resulting ClassPath execClassPath :: ClassPath () -> IO [Tree CPEntry] execClassPath m = St.execStateT m [] +-- | Load one class in current ClassPath loadClass :: String -> ClassPath () loadClass path = do cp <- St.get @@ -65,6 +70,7 @@ loadClass path = do | otherwise = return t load ps (File _) = fail $ "Found file when expecting directory! " ++ show ps +-- | Get one ClassPath entry getEntry :: [Tree CPEntry] -> String -> IO (Maybe CPEntry) getEntry cp path = get cp (split "/" path) where diff --git a/Makefile b/Makefile index a2aa34c..e6ccba8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ GHC=ghc --make -fwarn-unused-imports -all: dump-class rebuild-class TestGen +all: Hello.class dump-class rebuild-class TestGen + +Hello.class: Hello.java + javac $< dump-class: dump-class.hs */*.hs $(GHC) $< diff --git a/TestGen.hs b/TestGen.hs index c8cd0ef..f21912c 100644 --- a/TestGen.hs +++ b/TestGen.hs @@ -45,6 +45,7 @@ test = do invokeStatic Java.Lang.integer Java.Lang.valueOfInteger aastore invokeVirtual Java.IO.printStream Java.IO.printf + -- Call Hello.hello() invokeStatic "Hello" helloJava pop i0 RETURN diff --git a/hs-java.cabal b/hs-java.cabal index 43a8d09..50b5f57 100644 --- a/hs-java.cabal +++ b/hs-java.cabal @@ -28,11 +28,16 @@ library JVM.Exceptions Java.Lang Java.IO + Java.ClassPath + Java.ClassPath.Types + Java.ClassPath.Common + Java.JAR.Archive Build-Depends: base >= 3 && <= 5, containers, binary, mtl, directory, filepath, utf8-string, array, bytestring, data-binary-ieee754, binary-state, - control-monad-exception, data-default + control-monad-exception, data-default, MissingH, + LibZip, Glob ghc-options: -fwarn-unused-imports