jvm-streaming 0.2 → 0.2.1
raw patch · 3 files changed
+10/−8 lines, 3 filesdep ~inline-javadep ~jnidep ~jvm
Dependency ranges changed: inline-java, jni, jvm
Files
- jvm-streaming.cabal +4/−4
- src/Language/Java/Streaming.hs +5/−4
- tests/Language/Java/StreamingSpec.hs +1/−0
jvm-streaming.cabal view
@@ -1,5 +1,5 @@ name: jvm-streaming-version: 0.2+version: 0.2.1 synopsis: Expose Java iterators as streams from the streaming package. description: Please see README.md. homepage: http://github.com/tweag/inline-java/tree/master/jvm-streaming#readme@@ -26,9 +26,9 @@ build-depends: base >= 4.7 && < 5, distributed-closure >= 0.3,- jni >= 0.3.0,- jvm >= 0.2.0,- inline-java >= 0.6,+ jni >= 0.4.0,+ jvm >= 0.3.0,+ inline-java >= 0.7, singletons >= 2.2, streaming >= 0.1.4
src/Language/Java/Streaming.hs view
@@ -16,6 +16,7 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} {-# OPTIONS_GHC -fno-warn-unused-top-binds #-}+{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-} module Language.Java.Streaming () where @@ -49,7 +50,7 @@ writeIORef ref (Streaming.cons x stream) return $ fromIntegral $ fromEnum True -popStream :: Reflect a ty => IORef (Stream (Of a) IO ()) -> IO (J ty)+popStream :: Reflect a => IORef (Stream (Of a) IO ()) -> IO (J (Interp a)) popStream ref = do stream <- readIORef ref Streaming.uncons stream >>= \case@@ -88,7 +89,7 @@ freeStablePtr sptr newIterator- :: Reflect a ty+ :: Reflect a => Stream (Of a) IO () -> IO (J ('Iface "java.util.Iterator")) newIterator stream = do@@ -140,7 +141,7 @@ withStatic [d| type instance Interp (Stream (Of a) m r) = 'Iface "java.util.Iterator" - instance Reify a ty => Reify (Stream (Of a) IO ()) ('Iface "java.util.Iterator") where+ instance Reify a => Reify (Stream (Of a) IO ()) where reify itLocal = do -- We make sure the iterator remains valid while we reference it. it <- JNI.newGlobalRef itLocal@@ -151,6 +152,6 @@ obj <- call it "next" [] Left <$> reify (unsafeCast (obj :: JObject)) - instance Reflect a ty => Reflect (Stream (Of a) IO ()) ('Iface "java.util.Iterator") where+ instance Reflect a => Reflect (Stream (Of a) IO ()) where reflect x = newIterator x |]
tests/Language/Java/StreamingSpec.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE QuasiQuotes #-}+{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-} module Language.Java.StreamingSpec where