jvm-binary 0.6.0 → 0.6.1
raw patch · 6 files changed
+25/−11 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- jvm-binary.cabal +2/−2
- package.yaml +1/−1
- src/Language/JVM/ByteCode.hs +5/−2
- test/Language/JVM/ConstantSpec.hs +7/−3
- test/Language/JVMSpec.hs +4/−3
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Change log +## Version 0.7.0 (PENDING)+++## Version 0.6.1+- Fix a mistake in anewarray+ ## Version 0.6.0 - Add Annotations
jvm-binary.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: ab8fcc898f0e79144b2d18c7b74d169753e038db47b3648aca3c7a76a9418494+-- hash: 17d1d11b12a950bbd9f3da13a3c7afa3e69c6e165b50365e4a0aff52bc3fe075 name: jvm-binary-version: 0.6.0+version: 0.6.1 synopsis: A library for reading Java class-files description: A library for reading Java class-files. category: Language, Java, JVM
package.yaml view
@@ -1,5 +1,5 @@ name: jvm-binary-version: '0.6.0'+version: '0.6.1' author: Christian Gram Kalhauge maintainer: Christian Gram Kalhauge <kalhauge@cs.ucla.edu> synopsis: A library for reading Java class-files
src/Language/JVM/ByteCode.hs view
@@ -233,13 +233,16 @@ evolveRefType :: EvolveM m => RefType Low -> m JRefType evolveRefType = \case ArrayBaseType bt -> return $ JTArray (JTBase bt)+ Reference m 1 -> JTArray . JTRef . JTClass <$> link m Reference m _ -> link m devolveRefType :: DevolveM m => JRefType -> m (RefType Low) devolveRefType = \case JTArray (JTBase bt) -> return $ ArrayBaseType bt- c -> flip Reference (fromIntegral $ refTypeDepth c) <$> unlink c-+ JTArray (JTRef (JTClass bt)) ->+ flip Reference 1 <$> unlink bt+ c ->+ flip Reference (fromIntegral $ refTypeDepth c) <$> unlink c evolveByteCodeInst :: EvolveM m
test/Language/JVM/ConstantSpec.hs view
@@ -33,9 +33,13 @@ a' `shouldBe` (CMethodRef (InClass 2 5)) let cp' = bootstrapConstantPool cp- cp' `shouldBe` Right (fromConstants- [ CString "class/Name", CClassRef "class/Name", CString "method"- , CString "()V", CNameAndType "method" "()V"])+ cp' `shouldBe` Right+ (fromConstants+ [ CString "class/Name"+ , CClassRef "class/Name"+ , CString "method"+ , CString "()V", CNameAndType "method" "()V"+ ]) let Right cp'' = cp' runEvolve (EvolveConfig [] cp'' (const True)) (evolve a') `shouldBe` Right a
test/Language/JVMSpec.hs view
@@ -48,6 +48,8 @@ Left msg -> fail $ show msg + spec_reading_classfile+ describe "the standard library" $ do runIO (lookupEnv "JAVA_HOME") >>= \case Just home -> do@@ -85,9 +87,8 @@ Left msg -> fail $ show msg Nothing -> do- fail $ "Expecting JAVA_HOME to be set"+ runIO $ putStrLn "Expecting JAVA_HOME to be set" - -- spec_reading_classfile spec_reading_classfile :: Spec spec_reading_classfile = testAllFiles $ \bs -> do@@ -154,7 +155,7 @@ -- devolveClassFile' (cConstantPool cls) x `shouldMatchClass'` cls it "can do full read - write - read process" $ do- let w = writeClassFile' (cConstantPool cls) x+ let w = writeClassFile x let y' = readClassFile w y' `shouldSatisfy` isRight let Right y = y'