inline-java 0.5 → 0.5.1
raw patch · 3 files changed
+10/−7 lines, 3 files
Files
- README.md +9/−4
- inline-java.cabal +1/−1
- src/Language/Java/Inline.hs +0/−2
README.md view
@@ -2,9 +2,11 @@ [](https://circleci.com/gh/tweag/inline-java) -**NOTE: you'll need GHC >= 8.0.2 to compile and use this package. Use-`stack --nix --stack-yaml stack-HEAD.yaml build` ahead of a new GHC-release.**+**NOTE: you'll need GHC >= 8.0.2 to compile and use this package. Use**+```+stack --nix --stack-yaml stack-HEAD.yaml build+```+**ahead of a new GHC release to build using GHC HEAD.** The Haskell standard includes a native foreign function interface (FFI). It can be a pain to use and in any case only C support is@@ -21,16 +23,19 @@ ```Haskell {-# LANGUAGE DataKinds #-} {-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import Data.Int+import Data.Text (Text) import Language.Java import Language.Java.Inline main :: IO Int32 main = withJVM [] $ do- message <- reflect "Hello World!"+ -- Extra type annotation workaround for current GHC HEAD.+ message :: J ('Class "java.lang.String") <- reflect ("Hello World!" :: Text) [java| { javax.swing.JOptionPane.showMessageDialog(null, $message); return 0; } |] ```
inline-java.cabal view
@@ -1,5 +1,5 @@ name: inline-java-version: 0.5+version: 0.5.1 synopsis: Java interop via inline Java code in Haskell modules. description: Please see README.md. homepage: http://github.com/tweag/inline-java#readme
src/Language/Java/Inline.hs view
@@ -267,7 +267,6 @@ withSystemTempDirectory "inlinejava" $ \dir -> do let src = dir </> name <.> "java" emit src unit- putStrLn (Java.prettyPrint unit) callProcess "javac" [src] BS.readFile (dir </> name <.> "class") f <- TH.newName "inlinejava__bytecode"@@ -333,7 +332,6 @@ vtys <- forM (antis block) $ \v -> do name <- getValueName v info <- TH.reify name- TH.runIO $ print info case info of #if MIN_VERSION_template_haskell(2,11,0) TH.VarI _ (TH.AppT (TH.ConT nJ) thty) _